Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzc_renderer.h File Reference

Core renderer. More...

Data Structures

struct  KzcRendererUniformBufferUniform
 Specifies single uniform buffer uniform. More...
 
struct  KzcRendererUniformBufferBlock
 Structure for uniform buffer block. More...
 

Macros

#define KZC_RENDERER_UNIFORM_CACHE_SIZE
 Size of the uniform cache. More...
 
#define KZC_RENDERER_PER_FRAME_MEMORY_MANAGER_SIZE
 Size of the per frame memory manager. More...
 
#define KZC_RENDERER_MAX_TEXTURE_UNITS
 Maximum number of supported texture units. More...
 
#define KZC_RENDERER_MAX_VERTEX_ATTRIBUTES
 Maximum amount of shader vertex attributes. More...
 
#define KZC_RENDERER_BUFFER_VALUE_NONE
 Null value for buffers, that is, vertex & index buffer. More...
 
#define KZC_RENDERER_TEXTURE_COMPRESSION_COUNT
 Number of texture compression modes. More...
 
#define KZC_VERTEX_ARRAY_POSITION
 Positions for vertex array. More...
 
#define KZC_VERTEX_ARRAY_NORMAL
 Normals for vertex array. More...
 
#define KZC_VERTEX_ARRAY_COLOR
 Colors for vertex array. More...
 
#define KZC_VERTEX_ARRAY_TEXTURE_COORDINATE
 UVs for vertex array. More...
 
#define KZC_RENDERER_UNIFORM_BUFFER_DEFAULT
 Default uniform buffer, that contains all the uniforms in the shader. More...
 
#define KZC_RENDERER_MAX_VERTEX_COLORS
 Maximum number of supported vertex colors, used in rendering of vertex arrays. More...
 

Typedefs

typedef void(* KzcRendererFrameBufferCallback )(kzUint frameBufferHandle)
 Callback prototype for setActiveFrameBuffer. More...
 

Enumerations

enum  KzcRendererClearTarget { KZC_RENDERER_CLEAR_TARGET_COLOR, KZC_RENDERER_CLEAR_TARGET_DEPTH, KZC_RENDERER_CLEAR_TARGET_STENCIL, KZC_RENDERER_CLEAR_TARGET_COVERAGE_BUFFER }
 Clear target options for renderer. More...
 
enum  KzcRendererState {
  KZC_RENDERER_STATE_DEPTH_TEST, KZC_RENDERER_STATE_CULL_FACE, KZC_RENDERER_STATE_BLEND, KZC_RENDERER_STATE_DEPTH_WRITE,
  KZC_RENDERER_STATE_STENCIL_TEST, KZC_RENDERER_STATE_STENCIL_WRITE, KZC_RENDERER_STATE_MULTISAMPLE, KZC_RENDERER_STATE_SCISSOR_TEST,
  KZC_RENDERER_STATE_COVERAGE_WRITE, KZC_RENDERER_MAX_STATES
}
 Renderer state enumerations. More...
 
enum  KzcRendererCullMode { KZC_RENDERER_CULL_MODE_NONE, KZC_RENDERER_CULL_MODE_BACK, KZC_RENDERER_CULL_MODE_FRONT }
 List of available cull modes. More...
 
enum  KzcRendererScalar { KZC_RENDERER_SCALAR_CLEAR_DEPTH, KZC_RENDERER_SCALAR_CAMERA_NEAR_PLANE, KZC_RENDERER_SCALAR_CAMERA_FAR_PLANE, KZC_RENDERER_MAX_SCALARS }
 List of active renderer scalars for fixed functionality. More...
 
enum  KzcRendererStencilFunction {
  KZC_RENDERER_STENCIL_MODE_NEVER, KZC_RENDERER_STENCIL_MODE_LESS, KZC_RENDERER_STENCIL_MODE_LEQUAL, KZC_RENDERER_STENCIL_MODE_GREATER,
  KZC_RENDERER_STENCIL_MODE_GEQUAL, KZC_RENDERER_STENCIL_MODE_EQUAL, KZC_RENDERER_STENCIL_MODE_NOT_EQUAL, KZC_RENDERER_STENCIL_MODE_ALWAYS
}
 Renderer stencil modes. More...
 
enum  KzcRendererStencilOperation {
  KZC_RENDERER_STENCIL_OPERATION_KEEP, KZC_RENDERER_STENCIL_OPERATION_ZERO, KZC_RENDERER_STENCIL_OPERATION_REPLACE, KZC_RENDERER_STENCIL_OPERATION_INCREASE_WRAP,
  KZC_RENDERER_STENCIL_OPERATION_DECREASE_WRAP, KZC_RENDERER_STENCIL_OPERATION_INCREASE, KZC_RENDERER_STENCIL_OPERATION_DECREASE, KZC_RENDERER_STENCIL_OPERATION_INVERT
}
 Renderer stencil operations. More...
 
enum  KzcRendererMatrix {
  KZC_RENDERER_MATRIX_PROJECTION, KZC_RENDERER_MATRIX_CAMERA, KZC_RENDERER_MATRIX_WORLD, KZC_RENDERER_MATRIX_CAMERA_WORLD,
  KZC_RENDERER_MATRIX_PROJECTION_CAMERA_WORLD, KZC_RENDERER_MAX_MATRICES
}
 List of active matrices renderer keeps track of. More...
 
enum  KzcRendererColorWriteMode {
  KZC_RENDERER_COLOR_WRITE_INVALID, KZC_RENDERER_COLOR_WRITE_NONE, KZC_RENDERER_COLOR_WRITE_RGB, KZC_RENDERER_COLOR_WRITE_RGBA,
  KZC_RENDERER_COLOR_WRITE_RED, KZC_RENDERER_COLOR_WRITE_GREEN, KZC_RENDERER_COLOR_WRITE_BLUE, KZC_RENDERER_COLOR_WRITE_CYAN,
  KZC_RENDERER_COLOR_WRITE_ALPHA
}
 List of color write modes. More...
 
enum  KzcRendererBlendMode {
  KZC_RENDERER_BLEND_MODE_OPAQUE, KZC_RENDERER_BLEND_MODE_ALPHA, KZC_RENDERER_BLEND_MODE_ADDITIVE, KZC_RENDERER_BLEND_MODE_PREMULTIPLIED_ALPHA,
  KZC_RENDERER_BLEND_MODE_MIXED_ALPHA
}
 List of renderer blend modes. More...
 
enum  KzcRendererDepthTest {
  KZC_RENDERER_DEPTH_TEST_DISABLED, KZC_RENDERER_DEPTH_TEST_ALWAYS, KZC_RENDERER_DEPTH_TEST_EQUAL, KZC_RENDERER_DEPTH_TEST_NOT_EQUAL,
  KZC_RENDERER_DEPTH_TEST_LESS, KZC_RENDERER_DEPTH_TEST_LESS_EQUAL, KZC_RENDERER_DEPTH_TEST_GREATER, KZC_RENDERER_DEPTH_TEST_GREATER_EQUAL,
  KZC_RENDERER_DEPTH_TEST_NEVER
}
 List of renderer depth modes. More...
 
enum  KzcRendererColorFormat { KZC_RENDERER_COLOR_FORMAT_UNSIGNED_SHORT_RGB_5_6_5, KZC_RENDERER_COLOR_FORMAT_UNSIGNED_BYTE_RGB_8_8_8, KZC_RENDERER_COLOR_FORMAT_UNSIGNED_BYTE_RGBA_8_8_8_8 }
 List of color formats. More...
 
enum  KzcRendererTextureType {
  KZC_RENDERER_TEXTURE_TYPE_INVALID, KZC_RENDERER_TEXTURE_TYPE_2D, KZC_RENDERER_TEXTURE_TYPE_CUBEMAP, KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_X,
  KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_X, KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_Y, KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_Y, KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_Z,
  KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_Z, KZC_RENDERER_TEXTURE_TYPE_EXTERNAL
}
 List of texture types. More...
 
enum  KzcRendererTextureWrapMode { KZC_RENDERER_TEXTURE_WRAP_MODE_CLAMP_TO_EDGE, KZC_RENDERER_TEXTURE_WRAP_MODE_REPEAT }
 List of texture wrap modes. More...
 
enum  KzcRendererTextureFilter { KZC_RENDERER_TEXTURE_FILTER_POINT_SAMPLE, KZC_RENDERER_TEXTURE_FILTER_LINEAR, KZC_RENDERER_TEXTURE_FILTER_MIPMAP, KZC_RENDERER_TEXTURE_FILTER_TRILINEAR }
 List of texture filters. More...
 
enum  KzcRendererTextureFormat {
  KZC_RENDERER_TEXTURE_FORMAT_RGB, KZC_RENDERER_TEXTURE_FORMAT_RGBA, KZC_RENDERER_TEXTURE_FORMAT_ALPHA, KZC_RENDERER_TEXTURE_FORMAT_RGB565,
  KZC_RENDERER_TEXTURE_FORMAT_ETC, KZC_RENDERER_TEXTURE_FORMAT_LUMINANCE, KZC_RENDERER_TEXTURE_FORMAT_LUMINANCE_ALPHA, KZC_RENDERER_TEXTURE_FORMAT_DXT1_RGBA,
  KZC_RENDERER_TEXTURE_FORMAT_DXT3_RGBA, KZC_RENDERER_TEXTURE_FORMAT_DXT5_RGBA, KZC_RENDERER_TEXTURE_FORMAT_ATC, KZC_RENDERER_TEXTURE_FORMAT_ATC_EXPLICIT_ALPHA,
  KZC_RENDERER_TEXTURE_FORMAT_ATC_INTERPOLATED_ALPHA, KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGB_2BPP, KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGB_4BPP, KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGBA_2BPP,
  KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGBA_4BPP, KZC_RENDERER_TEXTURE_FORMAT_PVRTC2_RGBA_2BPP, KZC_RENDERER_TEXTURE_FORMAT_PVRTC2_RGBA_4BPP, KZC_RENDERER_TEXTURE_FORMAT_RGB_FLOAT_16,
  KZC_RENDERER_TEXTURE_FORMAT_RGB_FLOAT_32, KZC_RENDERER_TEXTURE_FORMAT_RGBA_FLOAT_16, KZC_RENDERER_TEXTURE_FORMAT_RGBA_FLOAT_32, KZC_RENDERER_TEXTURE_FORMAT_ALPHA_FLOAT_16,
  KZC_RENDERER_TEXTURE_FORMAT_ALPHA_FLOAT_32, KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_16, KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_24, KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_32,
  KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_32F, KZC_RENDERER_TEXTURE_FORMAT_AUTOMATIC
}
 Specifies list of available texture formats. More...
 
enum  KzcRendererTextureTargetType {
  KZC_RENDERER_TEXTURE_TARGET_TYPE_INVALID, KZC_RENDERER_TEXTURE_TARGET_TYPE_2D, KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_X, KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_X,
  KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_Y, KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_Y, KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_Z, KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_Z
}
 Texture target type. More...
 
enum  KzcRendererShaderType { KZC_RENDERER_SHADER_TYPE_VERTEX, KZC_RENDERER_SHADER_TYPE_FRAGMENT }
 List of shader types. More...
 
enum  KzcPrimitiveType {
  KZC_PRIMITIVE_TYPE_POINTS, KZC_PRIMITIVE_TYPE_LINES, KZC_PRIMITIVE_TYPE_LINE_LOOP, KZC_PRIMITIVE_TYPE_LINE_STRIP,
  KZC_PRIMITIVE_TYPE_TRIANGLES, KZC_PRIMITIVE_TYPE_TRIANGLE_STRIP, KZC_PRIMITIVE_TYPE_TRIANGLE_FAN
}
 Enumeration for index buffer primitive type. More...
 
enum  KzcVertexAttributeSemantic {
  KZC_VERTEX_ATTRIBUTE_POSITION, KZC_VERTEX_ATTRIBUTE_COLOR, KZC_VERTEX_ATTRIBUTE_NORMAL, KZC_VERTEX_ATTRIBUTE_TANGENT,
  KZC_VERTEX_ATTRIBUTE_TEXTURE_COORDINATE, KZC_VERTEX_ATTRIBUTE_WEIGHT, KZC_VERTEX_ATTRIBUTE_MATRIX_INDEX, KZC_VERTEX_ATTRIBUTE_CUSTOM
}
 Type of vertex attribute. More...
 
enum  KzcVertexAttributeDataType {
  KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S8, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U8, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S16, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U16,
  KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S32, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U32, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_FLOAT16, KZC_VERTEX_ATTRIBUTE_DATA_TYPE_FLOAT32
}
 Vertex attribute data type. More...
 
enum  KzcVertexListFormat { KZC_VERTEX_LIST_FORMAT_LIST_OF_ARRAYS, KZC_VERTEX_LIST_FORMAT_LIST_OF_ATTRIBUTES }
 Vertex list format. More...
 
enum  KzcRendererTextureCompression {
  KZC_RENDERER_TEXTURE_COMPRESSION_NONE, KZC_RENDERER_TEXTURE_COMPRESSION_ETC, KZC_RENDERER_TEXTURE_COMPRESSION_DXT1_RGBA, KZC_RENDERER_TEXTURE_COMPRESSION_DXT3_RGBA,
  KZC_RENDERER_TEXTURE_COMPRESSION_DXT5_RGBA, KZC_RENDERER_TEXTURE_COMPRESSION_ATC, KZC_RENDERER_TEXTURE_COMPRESSION_ATC_EXPLICIT_ALPHA, KZC_RENDERER_TEXTURE_COMPRESSION_ATC_INTERPOLATED_ALPHA,
  KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGB_2BPP, KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGBA_2BPP, KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGB_4BPP, KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGBA_4BPP,
  KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC2_RGBA_2BPP, KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC2_RGBA_4BPP
}
 Supported texture compressions. More...
 
enum  KzcRendererFBOTarget {
  KZC_RENDERER_FBO_TARGET_INVALID, KZC_RENDERER_FBO_TARGET_COLOR, KZC_RENDERER_FBO_TARGET_COLOR2, KZC_RENDERER_FBO_TARGET_COLOR3,
  KZC_RENDERER_FBO_TARGET_COLOR4, KZC_RENDERER_FBO_TARGET_COLOR5, KZC_RENDERER_FBO_TARGET_COLOR6, KZC_RENDERER_FBO_TARGET_COLOR7,
  KZC_RENDERER_FBO_TARGET_COLOR8, KZC_RENDERER_FBO_TARGET_DEPTH, KZC_RENDERER_FBO_TARGET_STENCIL
}
 Type of the FBO target. More...
 
enum  KzcRendererFBORenderBufferFormat {
  KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_INVALID, KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_RGBA, KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_16, KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_24,
  KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_STENCIL, KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_STENCIL
}
 FBO render buffer format. More...
 
enum  KzcRendererFixedUniform {
  KZC_RENDERER_FIXED_UNIFORM_WORLD_MATRIX, KZC_RENDERER_FIXED_UNIFORM_CAMERA_MATRIX, KZC_RENDERER_FIXED_UNIFORM_CAMERA_POSITION, KZC_RENDERER_FIXED_UNIFORM_VIEWPORT,
  KZC_RENDERER_FIXED_UNIFORM_NORMAL_MATRIX, KZC_RENDERER_FIXED_UNIFORM_CAMERA_NORMAL_MATRIX, KZC_RENDERER_FIXED_UNIFORM_PROJECTION_CAMERA_WORLD_MATRIX, KZC_RENDERER_FIXED_UNIFORM_PROJECTION_MATRIX,
  KZC_RENDERER_FIXED_UNIFORM_CAMERA_WORLD_MATRIX, KZC_RENDERER_FIXED_UNIFORM_NEAR_FAR_PLANE, KZC_RENDERER_FIXED_UNIFORM_TIME, KZC_RENDERER_FIXED_UNIFORM_COUNT
}
 Fixed uniform locations of the shader. More...
 
enum  KzcRendererFrameBufferDepthStencilFormat {
  KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_16, KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_24, KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_STENCIL, KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_24_STENCIL_8,
  KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_STENCIL_8, KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_NONE
}
 FrameBuffer depth bits. More...
 
enum  KzcRendererVertexAttribute {
  KZC_RENDERER_VERTEX_ATTRIBUTE_POSITION, KZC_RENDERER_VERTEX_ATTRIBUTE_TEXTURE_COORDINATE, KZC_RENDERER_VERTEX_ATTRIBUTE_NORMAL, KZC_RENDERER_VERTEX_ATTRIBUTE_COLOR,
  KZC_RENDERER_VERTEX_ARRAY_ATTRIBUTE_COUNT
}
 Vertex attribute enumeration for engine. More...
 

Functions

kzsError kzcRendererCreate (const struct KzcMemoryManager *memoryManager, struct KzcRenderer **out_renderer)
 Creates a new renderer object. More...
 
kzsError kzcRendererDelete (struct KzcRenderer *renderer)
 Deletes a renderer object. More...
 
kzsError kzcRendererResetFrame (struct KzcRenderer *renderer)
 Resets frame for core renderer, that is, counters for logging rendering infos (triangle count etc.). More...
 
kzsError kzcRendererReset (struct KzcRenderer *renderer)
 Resets renderer, e.g. More...
 
kzsError kzcRendererInitialize (struct KzcRenderer *renderer, kzUint vertexBufferPoolSize, kzUint indexBufferPoolSize)
 Initializes renderer object. More...
 
kzsError kzcRendererUninitialize (struct KzcRenderer *renderer)
 Uninitializes renderer object. More...
 
void kzcRendererSetActiveSurface (struct KzcRenderer *renderer, struct KzsSurface *surface)
 Sets active surface context for renderer. More...
 
struct KzsSurfacekzcRendererGetActiveSurface (const struct KzcRenderer *renderer)
 Gets active surface context from renderer. More...
 
void kzcRendererEnableState (struct KzcRenderer *renderer, enum KzcRendererState state)
 Enables a specific renderer state. More...
 
void kzcRendererDisableState (struct KzcRenderer *renderer, enum KzcRendererState state)
 Disables a specific renderer state. More...
 
void kzcRendererSetState (struct KzcRenderer *renderer, enum KzcRendererState state, kzBool enable)
 Enables or disables the state of a specific renderer state. More...
 
kzBool kzcRendererGetState (const struct KzcRenderer *renderer, enum KzcRendererState state)
 Returns state of a specific renderer state. More...
 
void kzcRendererClear (struct KzcRenderer *renderer)
 Clears a context using specified flags. More...
 
void kzcRendererResetClearTarget (struct KzcRenderer *renderer)
 Resets a clear target for renderer. More...
 
void kzcRendererAddClearTarget (struct KzcRenderer *renderer, enum KzcRendererClearTarget target)
 Sets a clearing target for renderer. More...
 
void kzcRendererRemoveClearTarget (struct KzcRenderer *renderer, enum KzcRendererClearTarget target)
 Removes a clearing target for renderer. More...
 
kzBool kzcRendererHasClearTarget (const struct KzcRenderer *renderer, enum KzcRendererClearTarget target)
 Sees if renderer has specific clear target. More...
 
kzBool kzcRendererIsClearEnabled (const struct KzcRenderer *renderer)
 See if clear is enabled. More...
 
void kzcRendererSetClearColor (struct KzcRenderer *renderer, struct KzcColorRGBA colorRGBA)
 Set clear color for renderer. More...
 
void kzcRendererSetColorWriteMode (struct KzcRenderer *renderer, enum KzcRendererColorWriteMode colorWriteMode)
 Set a color write mode for renderer. More...
 
enum KzcRendererColorWriteMode kzcRendererGetColorWriteMode (const struct KzcRenderer *renderer)
 Gets current color write mode from renderer. More...
 
void kzcRendererSetScissorTest (struct KzcRenderer *renderer, kzBool enabled, kzInt x, kzInt y, kzInt width, kzInt height)
 Sets scissor test for renderer. More...
 
void kzcRendererGetScissorTest (const struct KzcRenderer *renderer, kzInt *out_x, kzInt *out_y, kzInt *out_width, kzInt *out_height)
 Gets scissor specific values from renderer. More...
 
void kzcRendererSetClearDepthValue (struct KzcRenderer *renderer, kzFloat clearDepthValue)
 Set clear depth for renderer. More...
 
void kzcRendererSetClearStencil (struct KzcRenderer *renderer, kzInt stencilClearValue)
 Set clear stencil for renderer. More...
 
void kzcRendererSetViewport (struct KzcRenderer *renderer, kzInt x, kzInt y, kzInt width, kzInt height)
 Sets an active view port for renderer. More...
 
void kzcRendererSetVertexBuffer (struct KzcRenderer *renderer, kzUint value)
 Sets a vertex buffer for renderer. More...
 
void kzcRendererSetIndexBuffer (struct KzcRenderer *renderer, kzUint value)
 Sets an index buffer for renderer. More...
 
void kzcRendererDrawBuffers (struct KzcRenderer *renderer)
 Render buffers that are currently bound. More...
 
void kzcRendererSetVertexCount (struct KzcRenderer *renderer, kzUint vertexCount)
 Sets vertex count for renderer. More...
 
void kzcRendererSetIndexCount (struct KzcRenderer *renderer, kzUint indexCount)
 Sets the index count for renderer. More...
 
void kzcRendererSetIndexData (struct KzcRenderer *renderer, void *indexData)
 Sets index data for renderer. More...
 
void kzcRendererSetIndexType (struct KzcRenderer *renderer, enum KzcPrimitiveType indexType)
 Sets the index type for renderer. More...
 
kzsError kzcRendererGetUniformLocation (const struct KzcRenderer *renderer, kzString uniformName, kzInt *out_uniformLocation)
 Finds uniform location for given uniform from active shader. More...
 
kzsError kzcRendererGetUniformArrayLength (const struct KzcRenderer *renderer, kzString uniformName, kzUint *out_arrayLength)
 Returns array uniform length for given uniform. More...
 
kzsError kzcRendererSetUniformInteger (struct KzcRenderer *renderer, kzInt value, kzInt uniformLocation)
 Sets integer uniform for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformFloat (struct KzcRenderer *renderer, kzFloat value, kzInt uniformLocation)
 Sets float uniform for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformFloatArray (struct KzcRenderer *renderer, kzInt uniformLocation, kzUint count, const kzFloat *value)
 Sets uniform float array for renderer. More...
 
kzsError kzcRendererSetUniformVec2 (struct KzcRenderer *renderer, const struct KzcVector2 *value, kzInt uniformLocation)
 Sets uniform vec2 for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformVec3 (struct KzcRenderer *renderer, const struct KzcVector3 *value, kzInt uniformLocation)
 Sets uniform vec3 for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformVec3Array (struct KzcRenderer *renderer, kzInt uniformLocation, kzUint count, const struct KzcVector3 *value)
 Sets uniform vec3 array for renderer. More...
 
kzsError kzcRendererSetUniformVec4 (struct KzcRenderer *renderer, const struct KzcVector4 *value, kzInt uniformLocation)
 Sets uniform vec4 for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformVecArray (struct KzcRenderer *renderer, kzInt uniformLocation, kzUint count, kzUint dimension, const kzFloat *values)
 Sets arbitrary vector array with dimension to renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformColorRGBA (struct KzcRenderer *renderer, const struct KzcColorRGBA *value, kzInt uniformLocation)
 Sets uniform colorRGBA for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformVec4Array (struct KzcRenderer *renderer, kzInt uniformLocation, kzUint count, const struct KzcVector4 *value)
 Sets uniform vec4 array for renderer. More...
 
kzsError kzcRendererSetUniformMatrix2x2 (struct KzcRenderer *renderer, const struct KzcMatrix2x2 *value, kzInt uniformLocation)
 Sets matrix2x2 uniform for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformMatrix3x3 (struct KzcRenderer *renderer, const struct KzcMatrix3x3 *value, kzInt uniformLocation)
 Sets matrix3x3 uniform for renderer, using currently bound shader. More...
 
kzsError kzcRendererSetUniformMatrix4x4 (struct KzcRenderer *renderer, const struct KzcMatrix4x4 *value, kzInt uniformLocation)
 Sets matrix4x4 uniform for renderer, using currently bound shader. More...
 
void kzcRendererSetActiveScalar (struct KzcRenderer *renderer, enum KzcRendererScalar scalar, kzFloat value)
 Switches an scalar value for renderer if necessary, e.g. More...
 
kzFloat kzcRendererGetActiveScalar (const struct KzcRenderer *renderer, enum KzcRendererScalar scalar)
 Returns a current scalar value from renderer. More...
 
void kzcRendererSetBlendMode (struct KzcRenderer *renderer, enum KzcRendererBlendMode blendMode)
 Sets a blend mode for renderer. More...
 
enum KzcRendererBlendMode kzcRendererGetBlendMode (const struct KzcRenderer *renderer)
 Gets a blend mode for renderer. More...
 
void kzcRendererSetCullMode (struct KzcRenderer *renderer, enum KzcRendererCullMode cullMode)
 Sets a cull mode for renderer. More...
 
enum KzcRendererCullMode kzcRendererGetCullMode (const struct KzcRenderer *renderer)
 Gets a cull mode for renderer. More...
 
void kzcRendererSetDepthTest (struct KzcRenderer *renderer, enum KzcRendererDepthTest depthMode)
 Sets a depth pass mode for renderer. More...
 
enum KzcRendererDepthTest kzcRendererGetDepthTest (const struct KzcRenderer *renderer)
 Gets a depth pass mode for renderer. More...
 
void kzcRendererSetStencilFunction (struct KzcRenderer *renderer, enum KzcRendererStencilFunction stencilFunction, kzUint referenceValue, kzUint maskValue)
 Sets a stencil function for renderer. More...
 
void kzcRendererSetStencilOperation (struct KzcRenderer *renderer, enum KzcRendererStencilOperation stencilFailOperation, enum KzcRendererStencilOperation stencilPassDepthFailOperation, enum KzcRendererStencilOperation stencilPassDepthPassOperation)
 Sets a stencil operation for renderer. More...
 
void kzcRendererGetStencilFunction (const struct KzcRenderer *renderer, enum KzcRendererStencilFunction *out_stencilFunction, kzUint *out_referenceValue, kzUint *out_maskValue)
 Gets stencil function from renderer. More...
 
void kzcRendererGetStencilOperation (const struct KzcRenderer *renderer, enum KzcRendererStencilOperation *out_stencilFailOperation, enum KzcRendererStencilOperation *out_stencilPassDepthFailOperation, enum KzcRendererStencilOperation *out_stencilPassDepthPassOperation)
 Gets a stencil operation from renderer. More...
 
void kzcRendererSetMatrix (struct KzcRenderer *renderer, enum KzcRendererMatrix matrixType, const struct KzcMatrix4x4 *matrix)
 Sets matrix for a renderer. More...
 
struct KzcMatrix4x4 kzcRendererGetMatrix (const struct KzcRenderer *renderer, enum KzcRendererMatrix matrixType)
 Gets a matrix from renderer. More...
 
void kzcRendererCalculateProjectionCameraWorldMatrix (struct KzcRenderer *renderer)
 Calculates projection * camera * world matrix. More...
 
kzsError kzcRendererApplyTransformation (struct KzcRenderer *renderer)
 Applies transformations from renderer to GPU. More...
 
kzsError kzcRendererSetActiveTextureUnit (struct KzcRenderer *renderer, kzUint textureUnit)
 Sets texture unit active. More...
 
kzsError kzcRendererGetTextureSizeUniformLocations (const struct KzcRenderer *renderer, kzInt *out_textureWidthUniformLocation, kzInt *out_textureHeightUniformLocation)
 Gets texture uniform locations from renderer. More...
 
kzsError kzcRendererApplyTextureSizeUniforms (struct KzcRenderer *renderer, kzInt textureWidthUniformLocation, kzInt textureHeightUniformLocation, kzUint textureWidth, kzUint textureHeight)
 Applies texture uniforms for the renderer. More...
 
kzsError kzcRendererApplyTexture (struct KzcRenderer *renderer, kzInt textureUniformLocation, kzUint textureHandle, enum KzcRendererTextureType textureType)
 Applies texture for renderer using currently bound shader (required) and texture uniform (required). More...
 
void kzcRendererSetUniformTexture (struct KzcRenderer *renderer, kzInt uniformLocation)
 Sets texture uniform location for renderer, effectively used for storing the integer in renderer to retrieve it when binding textures. More...
 
kzInt kzcRendererGetUniformTexture (const struct KzcRenderer *renderer)
 Gets texture uniform location from renderer. More...
 
kzsError kzcRendererDetachTextureHandle (struct KzcRenderer *renderer, kzUint textureHandle)
 Detaches texture handle from all texture units it has been applied for. More...
 
void kzcRendererDetachTexture (struct KzcRenderer *renderer)
 Detaches texture from rendering. More...
 
kzsError kzcRendererInvalidateTextureHandle (struct KzcRenderer *renderer, kzUint textureHandle)
 Invalidates texture handle from renderer without affecting GL state. More...
 
void kzcRendererBindTexture (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, kzUint textureHandle)
 Binds texture for renderer. More...
 
kzsError kzcRendererGenerateTexture (struct KzcRenderer *renderer, kzUint *out_textureHandle)
 Generates new texture for renderer. More...
 
void kzcRendererSetTextureImage2D (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, kzUint mipmapLevel, enum KzcRendererTextureFormat textureFormat, kzUint width, kzUint height, const void *data)
 Uploads texture data to GPU. More...
 
void kzcRendererSetTextureSubImage2D (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, kzUint mipmapLevel, enum KzcRendererTextureFormat textureFormat, kzUint x, kzUint y, kzUint width, kzUint height, const void *data)
 Uploads texture subimage data to GPU. More...
 
kzsError kzcRendererSetCompressedTextureImage2D (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, kzUint mipmapLevel, enum KzcRendererTextureCompression compression, kzUint width, kzUint height, const void *data)
 Uploads compressed texture data to GPU. More...
 
kzsError kzcRendererDeleteTexture (struct KzcRenderer *renderer, kzUint textureHandle)
 Deletes texture via renderer. More...
 
void kzcRendererSetTextureWrapMode (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, enum KzcRendererTextureWrapMode wrapMode)
 Sets wrap mode for currently bound texture in current texture unit. More...
 
void kzcRendererSetTextureFilter (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, enum KzcRendererTextureFilter filter, kzFloat anisotropy)
 Sets texture filter for currently bound texture in current texture unit. More...
 
void kzcRendererSetPixelStorePack (struct KzcRenderer *renderer, kzUint packBytes)
 Sets pack storage for renderer. More...
 
void kzcRendererSetPixelStoreUnpack (struct KzcRenderer *renderer, kzUint unpackBytes)
 Sets unpack storage for renderer. More...
 
kzsError kzcRendererCreateShader (const struct KzcRenderer *renderer, enum KzcRendererShaderType type, kzUint *out_shaderHandle)
 Creates shader. More...
 
kzsError kzcRendererCreateShaderProgram (struct KzcRenderer *renderer, kzUint *out_programHandle)
 Creates shader program. More...
 
void kzcRendererRefreshRenderContext (struct KzcRenderer *renderer, kzBool geometryRendering)
 Refreshes render context to contain all proper states. More...
 
kzsError kzcRendererAttachShaderToProgram (struct KzcRenderer *renderer, kzUint programHandle, kzUint shaderHandle)
 Attaches shader to program. More...
 
kzsError kzcRendererBindAttributeToLocation (struct KzcRenderer *renderer, kzUint programHandle, kzUint locationIndex, kzString attributeName)
 Binds attribute to given location index, for example "kzPosition" to 0. More...
 
kzsError kzcRendererLinkShader (struct KzcRenderer *renderer, const struct KzcMemoryManager *memoryManager, kzUint programHandle, kzString shaderName, kzBool *out_success)
 Links shader program with given handle. More...
 
kzsError kzcRendererCompileSourceShader (struct KzcRenderer *renderer, const struct KzcMemoryManager *memoryManager, enum KzcRendererShaderType shaderType, kzUint shaderHandle, kzString shaderCode, kzString shaderName, kzBool *out_compileSuccess)
 Compiles source shader and deploys it to GPU. More...
 
kzsError kzcRendererDeployBinaryShader (struct KzcRenderer *renderer, kzUint count, const kzUint *shaders, kzUint formatConstant, const void *data, kzUint dataSize)
 Deploys binary shaders. More...
 
kzsError kzcRendererProgramBinary (struct KzcRenderer *renderer, const struct KzcMemoryManager *memoryManager, kzUint program, kzUint formatConstant, const void *data, kzInt dataSize, kzBool *out_success)
 Loads a program binary. More...
 
kzsError kzcRendererGetProgramBinary (const struct KzcRenderer *renderer, const struct KzcMemoryManager *memoryManager, kzUint program, kzUint *out_length, kzUint *out_format, kzByte **out_binary)
 Retrieves the program binary currently associated with the shader program. More...
 
kzsError kzcRendererDeleteShader (struct KzcRenderer *renderer, kzUint programHandle, kzUint vertexShaderHandle, kzUint fragmentShaderHandle)
 Deletes shader. More...
 
kzsError kzcRendererDeleteFixedUniformMapping (const struct KzcRenderer *renderer, kzUint handle)
 Helper function for removing fixed uniform mapping for given shader handle. More...
 
kzInt kzcRendererGetFixedShaderUniformLocation (const struct KzcRenderer *renderer, enum KzcRendererFixedUniform fixedUniform)
 Returns fixed shader uniform location of given fixed uniform. More...
 
kzsError kzcRendererGenerateFrameBuffer (const struct KzcRenderer *renderer, kzUint *out_framebufferHandle)
 Generates new texture for renderer. More...
 
kzsError kzcRendererDeleteFrameBuffer (struct KzcRenderer *renderer, kzUint frameBufferHandle)
 Deletes framebuffer. More...
 
void kzcRendererBindFrameBuffer (struct KzcRenderer *renderer, kzUint frameBufferHandle)
 Binds framebuffer. More...
 
kzBool kzcRendererIsFrameBufferComplete (struct KzcRenderer *renderer)
 Checks if the framebuffer is complete. More...
 
kzsException kzcRendererFrameBufferCheckErrors (struct KzcRenderer *renderer)
 Check framebuffer completeness and log possible errors . More...
 
kzsError kzcRendererFrameBufferTexture2D (struct KzcRenderer *renderer, enum KzcRendererTextureTargetType textureTarget, enum KzcRendererFBOTarget frameBufferTarget, kzUint textureHandle, kzUint mipmapLevel)
 Attaches texture to frame buffer. More...
 
kzUint kzcRendererGetCompressedTextureDataSizeBytes (kzUint width, kzUint height, enum KzcRendererTextureCompression compressionFormat)
 Gets compressed texture data size in bytes. More...
 
kzsError kzcRendererFrameBufferRenderBuffer (struct KzcRenderer *renderer, enum KzcRendererFBOTarget frameBufferTarget, kzUint renderBufferHandle)
 Attaches renderbuffer to framebuffer. More...
 
kzsError kzcRendererGenerateRenderBuffer (const struct KzcRenderer *renderer, kzUint *out_renderbufferHandle)
 Generates new texture for renderer. More...
 
kzsError kzcRendererDeleteRenderBuffer (const struct KzcRenderer *renderer, kzUint renderBufferHandle)
 Deletes framebuffer. More...
 
void kzcRendererBindRenderBuffer (struct KzcRenderer *renderer, kzUint renderBufferHandle)
 Binds framebuffer. More...
 
kzsException kzcRendererRenderBufferStorage (const struct KzcRenderer *renderer, enum KzcRendererFBORenderBufferFormat format, kzUint width, kzUint height, kzUint multisamples)
 Sets storage for render buffer. More...
 
void kzcRendererBlitFramebuffer (struct KzcRenderer *renderer, kzUint readBufferHandle, kzUint drawBufferHandle, kzUint sourceX, kzUint sourceY, kzUint sourceWidth, kzUint sourceHeight, kzUint destX, kzUint destY, kzUint destWidth, kzUint destHeight)
 Blits framebuffer to depth and color. More...
 
void kzcRendererDrawFrameBuffers (struct KzcRenderer *renderer, kzUint targetCount)
 Draws framebuffer to number of targets. More...
 
kzsError kzcRendererGenerateBuffer (const struct KzcRenderer *renderer, kzUint *out_handle)
 Generates new index or vertex buffer or uniform buffer handle. More...
 
void kzcRendererSetVertexBufferData (struct KzcRenderer *renderer, kzUint dataSize, const void *data)
 Sets static vertex buffer data. More...
 
void kzcRendererSetIndexBufferData (struct KzcRenderer *renderer, kzUint dataSize, const void *data)
 Sets static index buffer data. More...
 
void kzcRendererSetVertexBufferSubData (struct KzcRenderer *renderer, kzUint offset, kzUint size, const void *data)
 Uploads vertex buffer subdata with given offset and size. More...
 
void kzcRendererSetIndexBufferSubData (struct KzcRenderer *renderer, kzUint offset, kzUint size, const void *data)
 Uploads index buffer subdata with given offset and size. More...
 
kzsError kzcRendererDeleteBuffer (struct KzcRenderer *renderer, kzUint handle)
 Deletes vertex or index buffer. More...
 
void kzcRendererEnableVertexAttributeArray (struct KzcRenderer *renderer, kzUint attributeHandle)
 Enables vertex attribute array. More...
 
void kzcRendererDisableVertexAttributeArray (struct KzcRenderer *renderer, kzUint attributeHandle)
 Disables vertex attribute array. More...
 
void kzcRendererSetVertexBufferPointer (struct KzcRenderer *renderer, kzUint attributeHandle, kzUint dimension, enum KzcVertexAttributeDataType attributeDataType, kzUint stride, const void *pointer)
 Sets vertex buffer object pointer for currently enabled vertex attribute array. More...
 
kzsError kzcRendererSetActiveShaderHandle (struct KzcRenderer *renderer, kzUint activeShaderHandle)
 Sets active shader for renderer. More...
 
kzUint kzcRendererGetActiveShaderHandle (const struct KzcRenderer *coreRenderer)
 Gets active shader handle from renderer. More...
 
void kzcRendererSetActiveVertexAttributeMap (struct KzcRenderer *renderer, struct KzcHashMap *vertexAttributeMap)
 Sets active vertex attribute map for renderer. More...
 
struct KzcHashMapkzcRendererGetActiveShaderAttributeMap (const struct KzcRenderer *renderer)
 Gets active vertex attribute map from renderer. More...
 
void kzcRendererSetDefaultFrameBuffer (struct KzcRenderer *renderer, kzUint frameBufferHandle)
 Specifies default frame buffer (screen) for renderer. More...
 
void kzcRendererSetActiveFrameBuffer (struct KzcRenderer *renderer, kzUint frameBufferHandle)
 Sets active frame buffer for renderer. More...
 
void kzcRendererResetActiveFrameBuffer (struct KzcRenderer *renderer)
 Resets active frame buffer for renderer to default (screen). More...
 
void kzcRendererSetActiveFrameBufferCallback (struct KzcRenderer *renderer, KzcRendererFrameBufferCallback callbackFunction)
 Sets callback function that is called after setActiveFrameBuffer. More...
 
kzUint kzcRendererGetActiveFrameBuffer (const struct KzcRenderer *renderer)
 Gets active frame buffer handle from. More...
 
void kzcRendererReadPixels (struct KzcRenderer *renderer, kzInt x, kzInt y, kzInt width, kzInt height, enum KzcRendererColorFormat format, void *pixels)
 Reads the pixels from the current frame buffer. More...
 
enum KzcRendererColorFormat kzcRendererGetNativePixelReadFormat (struct KzcRenderer *renderer)
 Returns native pixel read format from renderer. More...
 
void kzcRendererBeginMaterialSetup (struct KzcRenderer *renderer)
 Begins a material for renderer. More...
 
kzsError kzcRendererEndMaterialSetup (struct KzcRenderer *renderer)
 Ends a material for renderer. More...
 
void kzcRendererBeginVertexArray (struct KzcRenderer *renderer, kzUint vertexArrayFlags)
 Begins set of vertex arrays. More...
 
void kzcRendererSetVertexArrayData (struct KzcRenderer *renderer, kzUint vertexArrayFlag, const void *data)
 Sets vertex array data. More...
 
kzsError kzcRendererEndVertexArray (struct KzcRenderer *renderer, enum KzcPrimitiveType primitiveType, kzUint count)
 Ends vertex array. More...
 
const voidkzcRendererGetCurrentVertexArrayAttributeData (const struct KzcRenderer *renderer, enum KzcRendererVertexAttribute attribute)
 Gets current vertex array data from renderer. More...
 
kzsError kzcRendererPrintInfo (const struct KzcRenderer *renderer)
 Prints info about renderer capabilities. More...
 
void kzcRendererSetLineWidth (struct KzcRenderer *renderer, kzFloat lineWidth)
 Sets line rendering width for renderer. More...
 
void kzcRendererGetViewport (const struct KzcRenderer *renderer, kzFloat *out_x, kzFloat *out_y, kzFloat *out_width, kzFloat *out_height)
 Gets view port from renderer. More...
 
void kzcRendererFlush (const struct KzcRenderer *renderer)
 Flushes the GPU pipeline, forces all commands to be executed in finite time. More...
 
void kzcRendererSetCollectingStatisticsEnabled (struct KzcRenderer *renderer, kzBool collectingStatisticsEnabled)
 Sets debug logging state for renderer. More...
 
kzUint kzcRendererGetTriangleCount (const struct KzcRenderer *renderer)
 Gets triangle count from renderer. More...
 
kzUint kzcRendererGetShaderSwitchCount (const struct KzcRenderer *renderer)
 Gets shader switches. More...
 
kzUint kzcRendererGetUniformSendCount (const struct KzcRenderer *renderer)
 Gets uniform sending count from renderer. More...
 
kzUint kzcRendererGetTextureSwitchCount (const struct KzcRenderer *renderer)
 Gets number of texture switches from renderer. More...
 
kzUint kzcRendererGetFrameBufferSwitchCount (const struct KzcRenderer *renderer)
 Gets number of framebuffer switches from renderer. More...
 
kzUint kzcRendererGetBufferSwitchCount (const struct KzcRenderer *renderer)
 Gets number of buffer switches (VBO + IBO) from renderer. More...
 
kzUint kzcRendererGetBatchCount (const struct KzcRenderer *renderer)
 Gets batch count from renderer (number of draw calls, such as drawElements and drawArrays). More...
 
kzUint kzcRendererGetHeavyweightCallCount (const struct KzcRenderer *renderer)
 Returns potential heavyweight calls such as buffer or texture updates and glFinish from renderer. More...
 
kzsError kzcRendererSetBinaryShaderFormatIdentifier (struct KzcRenderer *renderer, kzString binaryShaderID, kzUint binaryFormatGPUConstant)
 Sets binary shader format identifier for renderer. More...
 
kzString kzcRendererGetBinaryShaderFormatIdentifier (const struct KzcRenderer *renderer)
 Gets binary shader format identifier from renderer. More...
 
kzUint kzcRendererGetBinaryShaderGPUFormatIdentifier (const struct KzcRenderer *renderer)
 Gets the GPU identifier of the binary shader format. More...
 
void kzcRendererSetProgramBinaryExtensionEnabled (struct KzcRenderer *renderer, kzBool enabled)
 Sets the usage of the GL_OES_get_program_binary extension when loading binary shaders. More...
 
kzBool kzcRendererIsProgramBinaryExtensionEnabled (const struct KzcRenderer *renderer)
 Checks if the use of GL_OES_get_program_binary extension is enabled. More...
 
void kzcRendererSetShaderCachingEnabled (struct KzcRenderer *renderer, kzBool enabled)
 Sets shader caching enabled / disabled. More...
 
kzBool kzcRendererIsShaderCachingEnabled (const struct KzcRenderer *renderer)
 Checks if shader caching is enabled. More...
 
void kzcRendererSetShaderCacheDirectory (struct KzcRenderer *renderer, kzString cacheDirectory)
 Sets directory used for shader-cache. More...
 
kzString kzcRendererGetShaderCacheDirectory (const struct KzcRenderer *renderer)
 Get shader-cache directory. More...
 
void kzcRendererSetGPUCallsEnabled (struct KzcRenderer *renderer, kzBool enabled)
 Sets GPU calls enabled / disabled. More...
 
kzBool kzcRendererGPUCallsIsEnabled (const struct KzcRenderer *renderer)
 Checks if GPU calls are enabled. More...
 
kzsError kzcRendererPrintExtensionInfo (const struct KzcRenderer *renderer)
 Prints raw list of extensions supported. More...
 
kzBool kzcRendererIsDepthStencilSupported (struct KzcRenderer *renderer)
 Checks if combined depth+stencil render buffer format is supported. More...
 
kzBool kzcRendererIsCoverageBufferSupported (struct KzcRenderer *renderer)
 Is coverage buffer supported or not. More...
 
kzBool kzcRendererIsHalfFloatSupported (struct KzcRenderer *renderer)
 Is half float supported. More...
 
kzBool kzcRendererIsFrameBufferSupported (struct KzcRenderer *renderer)
 Is frame buffer supported. More...
 
kzBool kzcRendererIsFrameBufferDepth24Supported (struct KzcRenderer *renderer)
 Is frame buffer depth 24 supported. More...
 
kzBool kzcRendererIsUniformBufferSupported (struct KzcRenderer *renderer)
 Returns if uniform buffer is supported. More...
 
kzBool kzcRendererIsExternalTextureSupported (struct KzcRenderer *renderer)
 Returns if external texture extension is supported. More...
 
kzBool kzcRendererIsMapBufferRangeSupported (struct KzcRenderer *renderer)
 Returns if map buffer range extension is supported. More...
 
kzBool kzcRendererGetUniformBufferBlockLocation (struct KzcRenderer *renderer, kzUint shaderHandle, kzString uniformBufferBlock, kzUint *out_location)
 Gets location of the uniform buffer. More...
 
kzInt kzcRendererBindUniformBlockToBuffer (struct KzcRenderer *renderer, kzString uniformBufferBlock)
 Binds uniform block to buffer. More...
 
void kzcRendererSetUniformBufferData (struct KzcRenderer *renderer, kzUint dataSize, const void *data)
 Sets dynamic uniform buffer data. More...
 
void kzcRendererSetUniformBuffer (struct KzcRenderer *renderer, kzUint value)
 Sets a uniform buffer for renderer. More...
 
kzUint kzcRendererGetUniformBlockUniformCount (struct KzcRenderer *renderer, kzUint shaderHandle, kzUint uniformBufferBlock)
 Gets specific uniform block uniform count. More...
 
kzUint kzcRendererGetUniformBlockSize (struct KzcRenderer *renderer, kzUint shaderHandle, kzUint uniformBufferBlock)
 Gets specific uniform block size. More...
 
kzsError kzcRendererGetUniformIndices (struct KzcRenderer *renderer, kzUint shaderHandle, kzUint uniformBufferBlock, kzUint uniformCount, kzMutableString **out_uniformNames, kzInt **out_uniformLocations, kzInt **out_uniformOffsets)
 Gets uniform names, locations and offsets from given shader and uniform block. More...
 
void kzcRendererBindBufferBase (struct KzcRenderer *renderer, kzUint uniformBufferHandle, kzUint bindingPoint)
 Binds uniform buffer base to binding point. More...
 
void kzcRendererSetUniformBufferSubData (struct KzcRenderer *renderer, kzUint offset, kzUint dataSize, const void *data)
 Uploads sub data for uniform buffer. More...
 
kzsError kzcRendererCreateImageObject (struct KzcRenderer *renderer, void *dataPointer, kzInt target, kzInt *attributes, void **out_imageObject)
 Creates image object, returns KZ_NULL if no hardware support. More...
 
kzsError kzcRendererDeleteImageObject (struct KzcRenderer *renderer, void *imageObject)
 Deletes image object created with kzcRendererCreateImageObject. More...
 
kzsError kzcRendererSetImageTargetTexture (struct KzcRenderer *renderer, enum KzcRendererTextureType textureType, void *imageObject)
 Sets image object bound to currently bound texture (type). More...
 
void kzcRendererBeginActiveUniformBlockUniform (struct KzcRenderer *renderer, kzByte *data, kzInt offset, kzUint uniformBlockUniformBufferHandle)
 Begins active uniform block uniform deployment. More...
 
void kzcRendererEndActiveUniformBlockUniform (struct KzcRenderer *renderer)
 Ends active uniform block uniform deployment. More...
 
kzsError kzcRendererInitializeUniformBufferBlock (struct KzcRenderer *renderer, const struct KzcMemoryManager *memoryManager, kzUint programHandle, kzString blockName)
 Initializes a new uniform block. More...
 
kzBool kzcRendererGetUniformBufferLocation (struct KzcRenderer *coreRenderer, kzUint programHandle, kzString uniformName, kzInt *out_offset, kzByte **out_data, kzUint *out_uniformBufferHandle)
 Gets uniform buffer location from renderer. More...
 
kzBool kzcRendererIsCompressionFormatSupported (struct KzcRenderer *renderer, enum KzcRendererTextureCompression compression)
 Returns if specific texture compression format is supported. More...
 
kzFloat kzcRendererGetMaximumAnisotropy (struct KzcRenderer *renderer)
 Gets maximum anisotropy. More...
 
kzUint kzcRendererGetMaximumTextureSize (struct KzcRenderer *renderer)
 Gets maximum texture side size. More...
 
kzUint kzcRendererGetMaximumCubemapSize (struct KzcRenderer *renderer)
 Gets maximum cubemap side size. More...
 
kzUint kzcRendererGetStencilBufferBits (struct KzcRenderer *renderer)
 Returns number of stencil buffer bits in main GL context. More...
 
kzInt kzcRendererGetColorReadFormat (struct KzcRenderer *renderer)
 Returns GL constant for the color read format used in reading back data form framebuffer (kzcRendererReadPixels). More...
 
kzInt kzcRendererGetColorReadType (struct KzcRenderer *renderer)
 Returns GL constant for the color read type used in reading back data form framebuffer (kzcRendererReadPixels). More...
 
kzsError kzcRendererInvalidateAllocations (struct KzcRenderer *renderer)
 Invalidates all handles from renderer without affecting GL state. More...
 
struct KzcGPUBufferManagerkzcRendererGetGPUBufferManager (const struct KzcRenderer *renderer)
 Gets GPU buffer manager from renderer. More...
 

Variables

const kzString KzcRendererFixedUniformNames [KZC_RENDERER_FIXED_UNIFORM_COUNT]
 Specifies uniform names of the fixed uniforms. More...
 
const kzString KZC_RENDERER_ATTRIBUTE_POSITION
 Attribute string for vertex positions. More...
 
const kzString KZC_RENDERER_ATTRIBUTE_NORMAL
 Attribute string for vertex normals. More...
 
const kzString KZC_RENDERER_ATTRIBUTE_TANGENT
 Attribute string for vertex tangents. More...
 
const kzString KZC_RENDERER_ATTRIBUTE_WEIGHT
 Attribute string for vertex weight (skinning). More...
 
const kzString KZC_RENDERER_ATTRIBUTE_MATRIX_PALETTE
 Attribute string for matrix palette (skinning). More...
 
const kzString KZC_RENDERER_ATTRIBUTE_TEXTURE_COORDINATE [KZC_RENDERER_MAX_TEXTURE_UNITS]
 List of attribute strings for texture coordinates. More...
 
const kzString KZC_RENDERER_ATTRIBUTE_COLOR [KZC_RENDERER_MAX_VERTEX_COLORS]
 List of attribute strings for vertex colors. More...
 

Detailed Description

Core renderer.

Contains the graphics state machine.

Copyright 2008-2019 by Rightware. All rights reserved.

Macro Definition Documentation

#define KZC_RENDERER_UNIFORM_CACHE_SIZE

Size of the uniform cache.

#define KZC_RENDERER_PER_FRAME_MEMORY_MANAGER_SIZE

Size of the per frame memory manager.

#define KZC_RENDERER_MAX_TEXTURE_UNITS

Maximum number of supported texture units.

#define KZC_RENDERER_MAX_VERTEX_ATTRIBUTES

Maximum amount of shader vertex attributes.

#define KZC_RENDERER_BUFFER_VALUE_NONE

Null value for buffers, that is, vertex & index buffer.

#define KZC_RENDERER_TEXTURE_COMPRESSION_COUNT

Number of texture compression modes.

#define KZC_VERTEX_ARRAY_POSITION

Positions for vertex array.

#define KZC_VERTEX_ARRAY_NORMAL

Normals for vertex array.

#define KZC_VERTEX_ARRAY_COLOR

Colors for vertex array.

#define KZC_VERTEX_ARRAY_TEXTURE_COORDINATE

UVs for vertex array.

#define KZC_RENDERER_UNIFORM_BUFFER_DEFAULT

Default uniform buffer, that contains all the uniforms in the shader.

#define KZC_RENDERER_MAX_VERTEX_COLORS

Maximum number of supported vertex colors, used in rendering of vertex arrays.

Typedef Documentation

typedef void(* KzcRendererFrameBufferCallback)(kzUint frameBufferHandle)

Callback prototype for setActiveFrameBuffer.

Enumeration Type Documentation

Clear target options for renderer.

Enumerator
KZC_RENDERER_CLEAR_TARGET_COLOR 

Clear target color.

KZC_RENDERER_CLEAR_TARGET_DEPTH 

Clear target depth.

KZC_RENDERER_CLEAR_TARGET_STENCIL 

Clear target stencil.

KZC_RENDERER_CLEAR_TARGET_COVERAGE_BUFFER 

Clear target coverage buffer.

Renderer state enumerations.

Enumerator
KZC_RENDERER_STATE_DEPTH_TEST 

Renderer state for depth testing.

KZC_RENDERER_STATE_CULL_FACE 

Renderer state for cull face.

KZC_RENDERER_STATE_BLEND 

Renderer state for blending.

KZC_RENDERER_STATE_DEPTH_WRITE 

Renderer state for depth write.

KZC_RENDERER_STATE_STENCIL_TEST 

Renderer state for stencil test.

KZC_RENDERER_STATE_STENCIL_WRITE 

Renderer state for stencil write.

KZC_RENDERER_STATE_MULTISAMPLE 

Renderer state for multi-sampling.

KZC_RENDERER_STATE_SCISSOR_TEST 

Renderer state for scissor test.

KZC_RENDERER_STATE_COVERAGE_WRITE 

Renderer state for coverage write.

KZC_RENDERER_MAX_STATES 

Maximum count of renderer states.

List of available cull modes.

Enumerator
KZC_RENDERER_CULL_MODE_NONE 

No culling.

KZC_RENDERER_CULL_MODE_BACK 

Backface culling.

KZC_RENDERER_CULL_MODE_FRONT 

Frontface culling.

List of active renderer scalars for fixed functionality.

Enumerator
KZC_RENDERER_SCALAR_CLEAR_DEPTH 

Clear depth value.

KZC_RENDERER_SCALAR_CAMERA_NEAR_PLANE 

Camera near plane distance.

KZC_RENDERER_SCALAR_CAMERA_FAR_PLANE 

Camera far plane distance.

KZC_RENDERER_MAX_SCALARS 

Maximum amount of scalars.

Renderer stencil modes.

Enumerator
KZC_RENDERER_STENCIL_MODE_NEVER 

Always fails.

KZC_RENDERER_STENCIL_MODE_LESS 

(Ref & mask) < (stencil & mask).

KZC_RENDERER_STENCIL_MODE_LEQUAL 

(Ref & mask) <= (stencil & mask).

KZC_RENDERER_STENCIL_MODE_GREATER 

(Ref & mask) > (stencil & mask).

KZC_RENDERER_STENCIL_MODE_GEQUAL 

(Ref & mask) >= (stencil & mask).

KZC_RENDERER_STENCIL_MODE_EQUAL 

(Ref & mask) = (stencil & mask).

KZC_RENDERER_STENCIL_MODE_NOT_EQUAL 

(Ref & mask) != (stencil & mask).

KZC_RENDERER_STENCIL_MODE_ALWAYS 

Always passes.

Renderer stencil operations.

Enumerator
KZC_RENDERER_STENCIL_OPERATION_KEEP 

Keeps the current stencil buffer value.

KZC_RENDERER_STENCIL_OPERATION_ZERO 

Sets stencil buffer value to zero.

KZC_RENDERER_STENCIL_OPERATION_REPLACE 

Set stencil buffer value to reference value, specified by StencilFunction.

KZC_RENDERER_STENCIL_OPERATION_INCREASE_WRAP 

Increases stencil buffer value, wraps to zero when reaching maximum.

KZC_RENDERER_STENCIL_OPERATION_DECREASE_WRAP 

Decreases stencil buffer value, wraps to maximum - 1 when below 0.

KZC_RENDERER_STENCIL_OPERATION_INCREASE 

Increases current stencil buffer value.

KZC_RENDERER_STENCIL_OPERATION_DECREASE 

Decreases current stencil buffer value.

KZC_RENDERER_STENCIL_OPERATION_INVERT 

Inverts current stencil buffer value.

List of active matrices renderer keeps track of.

Enumerator
KZC_RENDERER_MATRIX_PROJECTION 

Projection matrix.

KZC_RENDERER_MATRIX_CAMERA 

Camera matrix.

KZC_RENDERER_MATRIX_WORLD 

Current world matrix.

KZC_RENDERER_MATRIX_CAMERA_WORLD 

Current camera x world matrix.

KZC_RENDERER_MATRIX_PROJECTION_CAMERA_WORLD 

Current projection x camera x world matrix.

KZC_RENDERER_MAX_MATRICES 

Maximum amount of matrices.

List of color write modes.

Enumerator
KZC_RENDERER_COLOR_WRITE_INVALID 

Invalid color write mode, initial value when nothing is specified.

KZC_RENDERER_COLOR_WRITE_NONE 

No color write.

KZC_RENDERER_COLOR_WRITE_RGB 

Color write for RGB channels.

KZC_RENDERER_COLOR_WRITE_RGBA 

Color write for RGBA channels.

KZC_RENDERER_COLOR_WRITE_RED 

Color write for red channel.

KZC_RENDERER_COLOR_WRITE_GREEN 

Color write for green channel.

KZC_RENDERER_COLOR_WRITE_BLUE 

Color write for blue channel.

KZC_RENDERER_COLOR_WRITE_CYAN 

Color write for cyan (green+blue).

KZC_RENDERER_COLOR_WRITE_ALPHA 

Color write for alpha channel.

List of renderer blend modes.

Enumerator
KZC_RENDERER_BLEND_MODE_OPAQUE 

Opaque blend mode.

KZC_RENDERER_BLEND_MODE_ALPHA 

Regular alpha blend.

KZC_RENDERER_BLEND_MODE_ADDITIVE 

Additive blend mode.

KZC_RENDERER_BLEND_MODE_PREMULTIPLIED_ALPHA 

Alpha blend of target, but source color has already been processed.

KZC_RENDERER_BLEND_MODE_MIXED_ALPHA 

Takes regular alpha input, but produces premultiplied output.

List of renderer depth modes.

Enumerator
KZC_RENDERER_DEPTH_TEST_DISABLED 

Depth test disabled completely.

KZC_RENDERER_DEPTH_TEST_ALWAYS 

Always pass.

Akin to disabled, but allows writing depth.

KZC_RENDERER_DEPTH_TEST_EQUAL 

Pass on exact same depth as in framebuffer.

KZC_RENDERER_DEPTH_TEST_NOT_EQUAL 

Pass on depth anything else than depth as in framebuffer.

KZC_RENDERER_DEPTH_TEST_LESS 

Pass on depth less than depth in framebuffer.

KZC_RENDERER_DEPTH_TEST_LESS_EQUAL 

Pass on depth less or equal to depth in framebuffer.

KZC_RENDERER_DEPTH_TEST_GREATER 

Pass on depth greater than depth in framebuffer.

KZC_RENDERER_DEPTH_TEST_GREATER_EQUAL 

Pass on depth greater or equal to depth in framebuffer.

KZC_RENDERER_DEPTH_TEST_NEVER 

Never pass.

Of dubious applicability.

List of color formats.

Enumerator
KZC_RENDERER_COLOR_FORMAT_UNSIGNED_SHORT_RGB_5_6_5 

16 bit RGB565 color.

KZC_RENDERER_COLOR_FORMAT_UNSIGNED_BYTE_RGB_8_8_8 

24 bit RGB color.

KZC_RENDERER_COLOR_FORMAT_UNSIGNED_BYTE_RGBA_8_8_8_8 

32 bit RGBA color.

List of texture types.

Enumerator
KZC_RENDERER_TEXTURE_TYPE_INVALID 

Invalid type.

KZC_RENDERER_TEXTURE_TYPE_2D 

2D Texture.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP 

Cubemap texture.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_X 

Cubemap texture side negative X.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_X 

Cubemap texture side positive X.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_Y 

Cubemap texture side negative Y.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_Y 

Cubemap texture side positive Y.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_NEG_Z 

Cubemap texture side negative Z.

KZC_RENDERER_TEXTURE_TYPE_CUBEMAP_POS_Z 

Cubemap texture side positive Z.

KZC_RENDERER_TEXTURE_TYPE_EXTERNAL 

External 2D Texture.

List of texture wrap modes.

Enumerator
KZC_RENDERER_TEXTURE_WRAP_MODE_CLAMP_TO_EDGE 

Clamp to edge.

KZC_RENDERER_TEXTURE_WRAP_MODE_REPEAT 

Repeat.

List of texture filters.

Enumerator
KZC_RENDERER_TEXTURE_FILTER_POINT_SAMPLE 

Point sample (direct detch from texel)

KZC_RENDERER_TEXTURE_FILTER_LINEAR 

Linear sampling from 4 texels.

KZC_RENDERER_TEXTURE_FILTER_MIPMAP 

Mipmap.

KZC_RENDERER_TEXTURE_FILTER_TRILINEAR 

Trilinear.

Specifies list of available texture formats.

Enumerator
KZC_RENDERER_TEXTURE_FORMAT_RGB 

RGB texture format.

KZC_RENDERER_TEXTURE_FORMAT_RGBA 

RGBA texture format.

KZC_RENDERER_TEXTURE_FORMAT_ALPHA 

Alpha texture format.

KZC_RENDERER_TEXTURE_FORMAT_RGB565 

RGB565 texture format.

KZC_RENDERER_TEXTURE_FORMAT_ETC 

ETC compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_LUMINANCE 

Luminance texture format.

KZC_RENDERER_TEXTURE_FORMAT_LUMINANCE_ALPHA 

Luminance alpha texture format.

KZC_RENDERER_TEXTURE_FORMAT_DXT1_RGBA 

DXT1 RGBA compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_DXT3_RGBA 

DXT3 RGBA compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_DXT5_RGBA 

DXT5 RGBA compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_ATC 

ATC compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_ATC_EXPLICIT_ALPHA 

ATC explicit alpha compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_ATC_INTERPOLATED_ALPHA 

ATC explicit alpha compressed texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGB_2BPP 

RGB PVRTC1 2 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGB_4BPP 

RGB PVRTC1 4 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGBA_2BPP 

RGBA PVRTC1 2 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC1_RGBA_4BPP 

RGBA PVRTC1 4 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC2_RGBA_2BPP 

RGBA PVRTC2 2 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_PVRTC2_RGBA_4BPP 

RGBA PVRTC2 4 bits per pixel texture format.

KZC_RENDERER_TEXTURE_FORMAT_RGB_FLOAT_16 
KZC_RENDERER_TEXTURE_FORMAT_RGB_FLOAT_32 

RGB float 16 texture format.

KZC_RENDERER_TEXTURE_FORMAT_RGBA_FLOAT_16 

RGB float 32 texture format.

KZC_RENDERER_TEXTURE_FORMAT_RGBA_FLOAT_32 

RGBA float 16 texture format.

KZC_RENDERER_TEXTURE_FORMAT_ALPHA_FLOAT_16 

RGBA float 32 texture format.

KZC_RENDERER_TEXTURE_FORMAT_ALPHA_FLOAT_32 

Alpha float 16 texture format.

KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_16 

Alpha float 32 texture format.

Depth 16 texture format.

KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_24 

Depth 24 texture format.

KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_32 

Depth 32 texture format.

KZC_RENDERER_TEXTURE_FORMAT_DEPTH_TEXTURE_FORMAT_32F 

Depth 32 float texture format.

KZC_RENDERER_TEXTURE_FORMAT_AUTOMATIC 

Texture format is automatically detected from image format.

This texture format is valid only during loading.

Texture target type.

Enumerator
KZC_RENDERER_TEXTURE_TARGET_TYPE_INVALID 

Invalid texture target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_2D 

2D texture target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_X 

Cube map positive x target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_X 

Cube map negative x target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_Y 

Cube map positive y target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_Y 

Cube map negative y target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_POSITIVE_Z 

Cube map positive z target type.

KZC_RENDERER_TEXTURE_TARGET_TYPE_CUBEMAP_NEGATIVE_Z 

Cube map negative z target type.

List of shader types.

Enumerator
KZC_RENDERER_SHADER_TYPE_VERTEX 

Vertex shader.

KZC_RENDERER_SHADER_TYPE_FRAGMENT 

Fragment shader.

Enumeration for index buffer primitive type.

Enumerator
KZC_PRIMITIVE_TYPE_POINTS 

Point primitive type.

KZC_PRIMITIVE_TYPE_LINES 

Line primitive type.

KZC_PRIMITIVE_TYPE_LINE_LOOP 

Line loop primitive type.

KZC_PRIMITIVE_TYPE_LINE_STRIP 

Line strip primitive type.

KZC_PRIMITIVE_TYPE_TRIANGLES 

Triangle primitive type.

KZC_PRIMITIVE_TYPE_TRIANGLE_STRIP 

Triangle strip primitive type.

KZC_PRIMITIVE_TYPE_TRIANGLE_FAN 

Triangle fan primitive type.

Type of vertex attribute.

Enumerator
KZC_VERTEX_ATTRIBUTE_POSITION 

Vertex attribute for position.

KZC_VERTEX_ATTRIBUTE_COLOR 

Vertex attribute for color.

KZC_VERTEX_ATTRIBUTE_NORMAL 

Vertex attribute for normal.

KZC_VERTEX_ATTRIBUTE_TANGENT 

Vertex attribute for tangent.

KZC_VERTEX_ATTRIBUTE_TEXTURE_COORDINATE 

Vertex attribute for texture coordinate.

KZC_VERTEX_ATTRIBUTE_WEIGHT 

Vertex attribute for weight.

KZC_VERTEX_ATTRIBUTE_MATRIX_INDEX 

Vertex attribute for matrix indices used in skinning.

KZC_VERTEX_ATTRIBUTE_CUSTOM 

Custom vertex attribute (can be used on programmable pipeline).

Vertex attribute data type.

Enumerator
KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S8 

Signed 8bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U8 

Unsigned 8bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S16 

Signed 16bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U16 

Unsigned 16bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_S32 

Signed 32bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_U32 

Unsigned 32bit integer.

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_FLOAT16 

16 bit floating point (half float).

KZC_VERTEX_ATTRIBUTE_DATA_TYPE_FLOAT32 

32 bit floating point.

Vertex list format.

Enumerator
KZC_VERTEX_LIST_FORMAT_LIST_OF_ARRAYS 

List of arrays.

A1_0,A1_1,A1_2...A2_0,A2_1,A2_2...

KZC_VERTEX_LIST_FORMAT_LIST_OF_ATTRIBUTES 

List of attributes.

A1_0,A2_0,A1_1,A2_1...A1_N,A2_N.

Supported texture compressions.

Enumerator
KZC_RENDERER_TEXTURE_COMPRESSION_NONE 

No texture compression.

KZC_RENDERER_TEXTURE_COMPRESSION_ETC 

Ericsson texture compression (ETC1_RGB8_OES).

KZC_RENDERER_TEXTURE_COMPRESSION_DXT1_RGBA 

DXT1 texture compression (COMPRESSED_RGBA_S3TC_DXT1_EXT).

KZC_RENDERER_TEXTURE_COMPRESSION_DXT3_RGBA 

DXT3 texture compression (COMPRESSED_RGBA_S3TC_DXT3_EXT).

KZC_RENDERER_TEXTURE_COMPRESSION_DXT5_RGBA 

DXT5 texture compression (COMPRESSED_RGBA_S3TC_DXT5_EXT).

KZC_RENDERER_TEXTURE_COMPRESSION_ATC 

ATC texture compression (ATC_RGB_AMD).

KZC_RENDERER_TEXTURE_COMPRESSION_ATC_EXPLICIT_ALPHA 

ATC texture compression (ATC_RGBA_EXPLICIT_ALPHA_AMD).

KZC_RENDERER_TEXTURE_COMPRESSION_ATC_INTERPOLATED_ALPHA 

ATC texture compression (ATC_RGBA_INTERPOLATED_ALPHA_AMD).

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGB_2BPP 

PVRTC1 2 bpp compression.

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGBA_2BPP 

PVRTC1 2 bpp compression.

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGB_4BPP 

PVRTC1 4 bpp compression.

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC1_RGBA_4BPP 

PVRTC1 4 bpp compression.

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC2_RGBA_2BPP 

PVRTC2 2 bpp compression.

KZC_RENDERER_TEXTURE_COMPRESSION_PVRTC2_RGBA_4BPP 

PVRTC2 4 bpp compression.

Type of the FBO target.

Enumerator
KZC_RENDERER_FBO_TARGET_INVALID 

Invalid frame buffer target.

KZC_RENDERER_FBO_TARGET_COLOR 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR2 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR3 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR4 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR5 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR6 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR7 

Color buffer target.

KZC_RENDERER_FBO_TARGET_COLOR8 

Color buffer target.

KZC_RENDERER_FBO_TARGET_DEPTH 

Color buffer target.

KZC_RENDERER_FBO_TARGET_STENCIL 

Stencil target.

FBO render buffer format.

Enumerator
KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_INVALID 

Invalid render buffer format.

KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_RGBA 

32 or 16 bit color buffer.

KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_16 

16 bit depth buffer.

KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_24 

24 bit depth buffer.

KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_DEPTH_STENCIL 

Combined depth and stencil buffer.

KZC_RENDERER_FBO_RENDER_BUFFER_FORMAT_STENCIL 

Stencil 8bit format.

Fixed uniform locations of the shader.

Enumerator
KZC_RENDERER_FIXED_UNIFORM_WORLD_MATRIX 

World matrix.

KZC_RENDERER_FIXED_UNIFORM_CAMERA_MATRIX 

Camera matrix.

KZC_RENDERER_FIXED_UNIFORM_CAMERA_POSITION 

Camera position.

KZC_RENDERER_FIXED_UNIFORM_VIEWPORT 

Viewport area.

KZC_RENDERER_FIXED_UNIFORM_NORMAL_MATRIX 

Normal matrix.

KZC_RENDERER_FIXED_UNIFORM_CAMERA_NORMAL_MATRIX 

Camera* normal matrix (screenspace normal).

KZC_RENDERER_FIXED_UNIFORM_PROJECTION_CAMERA_WORLD_MATRIX 

Projection * camera * world matrix.

KZC_RENDERER_FIXED_UNIFORM_PROJECTION_MATRIX 

Projection matrix.

KZC_RENDERER_FIXED_UNIFORM_CAMERA_WORLD_MATRIX 

Camera * world matrix.

KZC_RENDERER_FIXED_UNIFORM_NEAR_FAR_PLANE 

Vec2 containing near and far plane.

KZC_RENDERER_FIXED_UNIFORM_TIME 

Debug timer.

KZC_RENDERER_FIXED_UNIFORM_COUNT 

Number of fixed uniforms.

FrameBuffer depth bits.

Enumerator
KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_16 

16 bit frame buffer.

KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_24 

24 bit frame buffer.

KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_STENCIL 

Depth stencil format.

KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_DEPTH_24_STENCIL_8 

Depth + stencil combined format.

KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_STENCIL_8 

Stencil 8bit format.

KZC_RENDERER_FRAME_BUFFER_DEPTH_STENCIL_FORMAT_NONE 

No depth / stencil.

Vertex attribute enumeration for engine.

Enumerator
KZC_RENDERER_VERTEX_ATTRIBUTE_POSITION 

Position.

KZC_RENDERER_VERTEX_ATTRIBUTE_TEXTURE_COORDINATE 

Texture coordinate.

KZC_RENDERER_VERTEX_ATTRIBUTE_NORMAL 

Normal.

KZC_RENDERER_VERTEX_ATTRIBUTE_COLOR 

Color.

KZC_RENDERER_VERTEX_ARRAY_ATTRIBUTE_COUNT 

Number of vertex attributes.

Function Documentation

kzsError kzcRendererCreate ( const struct KzcMemoryManager memoryManager,
struct KzcRenderer **  out_renderer 
)

Creates a new renderer object.

kzsError kzcRendererDelete ( struct KzcRenderer renderer)

Deletes a renderer object.

kzsError kzcRendererResetFrame ( struct KzcRenderer renderer)

Resets frame for core renderer, that is, counters for logging rendering infos (triangle count etc.).

kzsError kzcRendererReset ( struct KzcRenderer renderer)

Resets renderer, e.g.

resets its caches and states and syncs renderer variables with actual GL states.

kzsError kzcRendererInitialize ( struct KzcRenderer renderer,
kzUint  vertexBufferPoolSize,
kzUint  indexBufferPoolSize 
)

Initializes renderer object.

Requires graphics context.

kzsError kzcRendererUninitialize ( struct KzcRenderer renderer)

Uninitializes renderer object.

void kzcRendererSetActiveSurface ( struct KzcRenderer renderer,
struct KzsSurface surface 
)

Sets active surface context for renderer.

struct KzsSurface* kzcRendererGetActiveSurface ( const struct KzcRenderer renderer)

Gets active surface context from renderer.

void kzcRendererEnableState ( struct KzcRenderer renderer,
enum KzcRendererState  state 
)

Enables a specific renderer state.

void kzcRendererDisableState ( struct KzcRenderer renderer,
enum KzcRendererState  state 
)

Disables a specific renderer state.

void kzcRendererSetState ( struct KzcRenderer renderer,
enum KzcRendererState  state,
kzBool  enable 
)

Enables or disables the state of a specific renderer state.

kzBool kzcRendererGetState ( const struct KzcRenderer renderer,
enum KzcRendererState  state 
)

Returns state of a specific renderer state.

void kzcRendererClear ( struct KzcRenderer renderer)

Clears a context using specified flags.

void kzcRendererResetClearTarget ( struct KzcRenderer renderer)

Resets a clear target for renderer.

void kzcRendererAddClearTarget ( struct KzcRenderer renderer,
enum KzcRendererClearTarget  target 
)

Sets a clearing target for renderer.

void kzcRendererRemoveClearTarget ( struct KzcRenderer renderer,
enum KzcRendererClearTarget  target 
)

Removes a clearing target for renderer.

kzBool kzcRendererHasClearTarget ( const struct KzcRenderer renderer,
enum KzcRendererClearTarget  target 
)

Sees if renderer has specific clear target.

kzBool kzcRendererIsClearEnabled ( const struct KzcRenderer renderer)

See if clear is enabled.

void kzcRendererSetClearColor ( struct KzcRenderer renderer,
struct KzcColorRGBA  colorRGBA 
)

Set clear color for renderer.

void kzcRendererSetColorWriteMode ( struct KzcRenderer renderer,
enum KzcRendererColorWriteMode  colorWriteMode 
)

Set a color write mode for renderer.

enum KzcRendererColorWriteMode kzcRendererGetColorWriteMode ( const struct KzcRenderer renderer)

Gets current color write mode from renderer.

void kzcRendererSetScissorTest ( struct KzcRenderer renderer,
kzBool  enabled,
kzInt  x,
kzInt  y,
kzInt  width,
kzInt  height 
)

Sets scissor test for renderer.

void kzcRendererGetScissorTest ( const struct KzcRenderer renderer,
kzInt out_x,
kzInt out_y,
kzInt out_width,
kzInt out_height 
)

Gets scissor specific values from renderer.

KZ_NULL if not requiring some specific value.

void kzcRendererSetClearDepthValue ( struct KzcRenderer renderer,
kzFloat  clearDepthValue 
)

Set clear depth for renderer.

void kzcRendererSetClearStencil ( struct KzcRenderer renderer,
kzInt  stencilClearValue 
)

Set clear stencil for renderer.

void kzcRendererSetViewport ( struct KzcRenderer renderer,
kzInt  x,
kzInt  y,
kzInt  width,
kzInt  height 
)

Sets an active view port for renderer.

void kzcRendererSetVertexBuffer ( struct KzcRenderer renderer,
kzUint  value 
)

Sets a vertex buffer for renderer.

void kzcRendererSetIndexBuffer ( struct KzcRenderer renderer,
kzUint  value 
)

Sets an index buffer for renderer.

void kzcRendererDrawBuffers ( struct KzcRenderer renderer)

Render buffers that are currently bound.

void kzcRendererSetVertexCount ( struct KzcRenderer renderer,
kzUint  vertexCount 
)

Sets vertex count for renderer.

void kzcRendererSetIndexCount ( struct KzcRenderer renderer,
kzUint  indexCount 
)

Sets the index count for renderer.

void kzcRendererSetIndexData ( struct KzcRenderer renderer,
void indexData 
)

Sets index data for renderer.

void kzcRendererSetIndexType ( struct KzcRenderer renderer,
enum KzcPrimitiveType  indexType 
)

Sets the index type for renderer.

kzsError kzcRendererGetUniformLocation ( const struct KzcRenderer renderer,
kzString  uniformName,
kzInt out_uniformLocation 
)

Finds uniform location for given uniform from active shader.

The data will be stored to uniform cache and fetched from in subsequent calls.

kzsError kzcRendererGetUniformArrayLength ( const struct KzcRenderer renderer,
kzString  uniformName,
kzUint out_arrayLength 
)

Returns array uniform length for given uniform.

If uniform with given name is not found, returns 0. If uniform is not an array, returns 1.

kzsError kzcRendererSetUniformInteger ( struct KzcRenderer renderer,
kzInt  value,
kzInt  uniformLocation 
)

Sets integer uniform for renderer, using currently bound shader.

kzsError kzcRendererSetUniformFloat ( struct KzcRenderer renderer,
kzFloat  value,
kzInt  uniformLocation 
)

Sets float uniform for renderer, using currently bound shader.

kzsError kzcRendererSetUniformFloatArray ( struct KzcRenderer renderer,
kzInt  uniformLocation,
kzUint  count,
const kzFloat value 
)

Sets uniform float array for renderer.

kzsError kzcRendererSetUniformVec2 ( struct KzcRenderer renderer,
const struct KzcVector2 value,
kzInt  uniformLocation 
)

Sets uniform vec2 for renderer, using currently bound shader.

kzsError kzcRendererSetUniformVec3 ( struct KzcRenderer renderer,
const struct KzcVector3 value,
kzInt  uniformLocation 
)

Sets uniform vec3 for renderer, using currently bound shader.

kzsError kzcRendererSetUniformVec3Array ( struct KzcRenderer renderer,
kzInt  uniformLocation,
kzUint  count,
const struct KzcVector3 value 
)

Sets uniform vec3 array for renderer.

kzsError kzcRendererSetUniformVec4 ( struct KzcRenderer renderer,
const struct KzcVector4 value,
kzInt  uniformLocation 
)

Sets uniform vec4 for renderer, using currently bound shader.

kzsError kzcRendererSetUniformVecArray ( struct KzcRenderer renderer,
kzInt  uniformLocation,
kzUint  count,
kzUint  dimension,
const kzFloat values 
)

Sets arbitrary vector array with dimension to renderer, using currently bound shader.

kzsError kzcRendererSetUniformColorRGBA ( struct KzcRenderer renderer,
const struct KzcColorRGBA value,
kzInt  uniformLocation 
)

Sets uniform colorRGBA for renderer, using currently bound shader.

kzsError kzcRendererSetUniformVec4Array ( struct KzcRenderer renderer,
kzInt  uniformLocation,
kzUint  count,
const struct KzcVector4 value 
)

Sets uniform vec4 array for renderer.

kzsError kzcRendererSetUniformMatrix2x2 ( struct KzcRenderer renderer,
const struct KzcMatrix2x2 value,
kzInt  uniformLocation 
)

Sets matrix2x2 uniform for renderer, using currently bound shader.

kzsError kzcRendererSetUniformMatrix3x3 ( struct KzcRenderer renderer,
const struct KzcMatrix3x3 value,
kzInt  uniformLocation 
)

Sets matrix3x3 uniform for renderer, using currently bound shader.

kzsError kzcRendererSetUniformMatrix4x4 ( struct KzcRenderer renderer,
const struct KzcMatrix4x4 value,
kzInt  uniformLocation 
)

Sets matrix4x4 uniform for renderer, using currently bound shader.

void kzcRendererSetActiveScalar ( struct KzcRenderer renderer,
enum KzcRendererScalar  scalar,
kzFloat  value 
)

Switches an scalar value for renderer if necessary, e.g.

depth clear value.

kzFloat kzcRendererGetActiveScalar ( const struct KzcRenderer renderer,
enum KzcRendererScalar  scalar 
)

Returns a current scalar value from renderer.

void kzcRendererSetBlendMode ( struct KzcRenderer renderer,
enum KzcRendererBlendMode  blendMode 
)

Sets a blend mode for renderer.

enum KzcRendererBlendMode kzcRendererGetBlendMode ( const struct KzcRenderer renderer)

Gets a blend mode for renderer.

void kzcRendererSetCullMode ( struct KzcRenderer renderer,
enum KzcRendererCullMode  cullMode 
)

Sets a cull mode for renderer.

enum KzcRendererCullMode kzcRendererGetCullMode ( const struct KzcRenderer renderer)

Gets a cull mode for renderer.

void kzcRendererSetDepthTest ( struct KzcRenderer renderer,
enum KzcRendererDepthTest  depthMode 
)

Sets a depth pass mode for renderer.

enum KzcRendererDepthTest kzcRendererGetDepthTest ( const struct KzcRenderer renderer)

Gets a depth pass mode for renderer.

void kzcRendererSetStencilFunction ( struct KzcRenderer renderer,
enum KzcRendererStencilFunction  stencilFunction,
kzUint  referenceValue,
kzUint  maskValue 
)

Sets a stencil function for renderer.

void kzcRendererSetStencilOperation ( struct KzcRenderer renderer,
enum KzcRendererStencilOperation  stencilFailOperation,
enum KzcRendererStencilOperation  stencilPassDepthFailOperation,
enum KzcRendererStencilOperation  stencilPassDepthPassOperation 
)

Sets a stencil operation for renderer.

void kzcRendererGetStencilFunction ( const struct KzcRenderer renderer,
enum KzcRendererStencilFunction out_stencilFunction,
kzUint out_referenceValue,
kzUint out_maskValue 
)

Gets stencil function from renderer.

void kzcRendererGetStencilOperation ( const struct KzcRenderer renderer,
enum KzcRendererStencilOperation out_stencilFailOperation,
enum KzcRendererStencilOperation out_stencilPassDepthFailOperation,
enum KzcRendererStencilOperation out_stencilPassDepthPassOperation 
)

Gets a stencil operation from renderer.

void kzcRendererSetMatrix ( struct KzcRenderer renderer,
enum KzcRendererMatrix  matrixType,
const struct KzcMatrix4x4 matrix 
)

Sets matrix for a renderer.

struct KzcMatrix4x4 kzcRendererGetMatrix ( const struct KzcRenderer renderer,
enum KzcRendererMatrix  matrixType 
)

Gets a matrix from renderer.

void kzcRendererCalculateProjectionCameraWorldMatrix ( struct KzcRenderer renderer)

Calculates projection * camera * world matrix.

kzsError kzcRendererApplyTransformation ( struct KzcRenderer renderer)

Applies transformations from renderer to GPU.

kzsError kzcRendererSetActiveTextureUnit ( struct KzcRenderer renderer,
kzUint  textureUnit 
)

Sets texture unit active.

kzsError kzcRendererGetTextureSizeUniformLocations ( const struct KzcRenderer renderer,
kzInt out_textureWidthUniformLocation,
kzInt out_textureHeightUniformLocation 
)

Gets texture uniform locations from renderer.

kzsError kzcRendererApplyTextureSizeUniforms ( struct KzcRenderer renderer,
kzInt  textureWidthUniformLocation,
kzInt  textureHeightUniformLocation,
kzUint  textureWidth,
kzUint  textureHeight 
)

Applies texture uniforms for the renderer.

kzsError kzcRendererApplyTexture ( struct KzcRenderer renderer,
kzInt  textureUniformLocation,
kzUint  textureHandle,
enum KzcRendererTextureType  textureType 
)

Applies texture for renderer using currently bound shader (required) and texture uniform (required).

void kzcRendererSetUniformTexture ( struct KzcRenderer renderer,
kzInt  uniformLocation 
)

Sets texture uniform location for renderer, effectively used for storing the integer in renderer to retrieve it when binding textures.

kzInt kzcRendererGetUniformTexture ( const struct KzcRenderer renderer)

Gets texture uniform location from renderer.

kzsError kzcRendererDetachTextureHandle ( struct KzcRenderer renderer,
kzUint  textureHandle 
)

Detaches texture handle from all texture units it has been applied for.

void kzcRendererDetachTexture ( struct KzcRenderer renderer)

Detaches texture from rendering.

kzsError kzcRendererInvalidateTextureHandle ( struct KzcRenderer renderer,
kzUint  textureHandle 
)

Invalidates texture handle from renderer without affecting GL state.

void kzcRendererBindTexture ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
kzUint  textureHandle 
)

Binds texture for renderer.

kzsError kzcRendererGenerateTexture ( struct KzcRenderer renderer,
kzUint out_textureHandle 
)

Generates new texture for renderer.

void kzcRendererSetTextureImage2D ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
kzUint  mipmapLevel,
enum KzcRendererTextureFormat  textureFormat,
kzUint  width,
kzUint  height,
const void data 
)

Uploads texture data to GPU.

void kzcRendererSetTextureSubImage2D ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
kzUint  mipmapLevel,
enum KzcRendererTextureFormat  textureFormat,
kzUint  x,
kzUint  y,
kzUint  width,
kzUint  height,
const void data 
)

Uploads texture subimage data to GPU.

kzsError kzcRendererSetCompressedTextureImage2D ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
kzUint  mipmapLevel,
enum KzcRendererTextureCompression  compression,
kzUint  width,
kzUint  height,
const void data 
)

Uploads compressed texture data to GPU.

kzsError kzcRendererDeleteTexture ( struct KzcRenderer renderer,
kzUint  textureHandle 
)

Deletes texture via renderer.

void kzcRendererSetTextureWrapMode ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
enum KzcRendererTextureWrapMode  wrapMode 
)

Sets wrap mode for currently bound texture in current texture unit.

void kzcRendererSetTextureFilter ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
enum KzcRendererTextureFilter  filter,
kzFloat  anisotropy 
)

Sets texture filter for currently bound texture in current texture unit.

Parameters
anisotropySet anisotropic filtering level of texture. Values <= 1.0f disable the feature.
void kzcRendererSetPixelStorePack ( struct KzcRenderer renderer,
kzUint  packBytes 
)

Sets pack storage for renderer.

Specifies how the pixel data is aligned.

void kzcRendererSetPixelStoreUnpack ( struct KzcRenderer renderer,
kzUint  unpackBytes 
)

Sets unpack storage for renderer.

Specifies how the pixel data is aligned.

kzsError kzcRendererCreateShader ( const struct KzcRenderer renderer,
enum KzcRendererShaderType  type,
kzUint out_shaderHandle 
)

Creates shader.

kzsError kzcRendererCreateShaderProgram ( struct KzcRenderer renderer,
kzUint out_programHandle 
)

Creates shader program.

Returns the handle to the program.

void kzcRendererRefreshRenderContext ( struct KzcRenderer renderer,
kzBool  geometryRendering 
)

Refreshes render context to contain all proper states.

kzsError kzcRendererAttachShaderToProgram ( struct KzcRenderer renderer,
kzUint  programHandle,
kzUint  shaderHandle 
)

Attaches shader to program.

kzsError kzcRendererBindAttributeToLocation ( struct KzcRenderer renderer,
kzUint  programHandle,
kzUint  locationIndex,
kzString  attributeName 
)

Binds attribute to given location index, for example "kzPosition" to 0.

kzsError kzcRendererLinkShader ( struct KzcRenderer renderer,
const struct KzcMemoryManager memoryManager,
kzUint  programHandle,
kzString  shaderName,
kzBool out_success 
)

Links shader program with given handle.

kzsError kzcRendererCompileSourceShader ( struct KzcRenderer renderer,
const struct KzcMemoryManager memoryManager,
enum KzcRendererShaderType  shaderType,
kzUint  shaderHandle,
kzString  shaderCode,
kzString  shaderName,
kzBool out_compileSuccess 
)

Compiles source shader and deploys it to GPU.

kzsError kzcRendererDeployBinaryShader ( struct KzcRenderer renderer,
kzUint  count,
const kzUint shaders,
kzUint  formatConstant,
const void data,
kzUint  dataSize 
)

Deploys binary shaders.

kzsError kzcRendererProgramBinary ( struct KzcRenderer renderer,
const struct KzcMemoryManager memoryManager,
kzUint  program,
kzUint  formatConstant,
const void data,
kzInt  dataSize,
kzBool out_success 
)

Loads a program binary.

Uses a different OpenGL extension depending on the platform.

kzsError kzcRendererGetProgramBinary ( const struct KzcRenderer renderer,
const struct KzcMemoryManager memoryManager,
kzUint  program,
kzUint out_length,
kzUint out_format,
kzByte **  out_binary 
)

Retrieves the program binary currently associated with the shader program.

kzsError kzcRendererDeleteShader ( struct KzcRenderer renderer,
kzUint  programHandle,
kzUint  vertexShaderHandle,
kzUint  fragmentShaderHandle 
)

Deletes shader.

kzsError kzcRendererDeleteFixedUniformMapping ( const struct KzcRenderer renderer,
kzUint  handle 
)

Helper function for removing fixed uniform mapping for given shader handle.

kzInt kzcRendererGetFixedShaderUniformLocation ( const struct KzcRenderer renderer,
enum KzcRendererFixedUniform  fixedUniform 
)

Returns fixed shader uniform location of given fixed uniform.

kzsError kzcRendererGenerateFrameBuffer ( const struct KzcRenderer renderer,
kzUint out_framebufferHandle 
)

Generates new texture for renderer.

kzsError kzcRendererDeleteFrameBuffer ( struct KzcRenderer renderer,
kzUint  frameBufferHandle 
)

Deletes framebuffer.

void kzcRendererBindFrameBuffer ( struct KzcRenderer renderer,
kzUint  frameBufferHandle 
)

Binds framebuffer.

kzBool kzcRendererIsFrameBufferComplete ( struct KzcRenderer renderer)

Checks if the framebuffer is complete.

kzsException kzcRendererFrameBufferCheckErrors ( struct KzcRenderer renderer)

Check framebuffer completeness and log possible errors .

kzsError kzcRendererFrameBufferTexture2D ( struct KzcRenderer renderer,
enum KzcRendererTextureTargetType  textureTarget,
enum KzcRendererFBOTarget  frameBufferTarget,
kzUint  textureHandle,
kzUint  mipmapLevel 
)

Attaches texture to frame buffer.

kzUint kzcRendererGetCompressedTextureDataSizeBytes ( kzUint  width,
kzUint  height,
enum KzcRendererTextureCompression  compressionFormat 
)

Gets compressed texture data size in bytes.

kzsError kzcRendererFrameBufferRenderBuffer ( struct KzcRenderer renderer,
enum KzcRendererFBOTarget  frameBufferTarget,
kzUint  renderBufferHandle 
)

Attaches renderbuffer to framebuffer.

kzsError kzcRendererGenerateRenderBuffer ( const struct KzcRenderer renderer,
kzUint out_renderbufferHandle 
)

Generates new texture for renderer.

kzsError kzcRendererDeleteRenderBuffer ( const struct KzcRenderer renderer,
kzUint  renderBufferHandle 
)

Deletes framebuffer.

void kzcRendererBindRenderBuffer ( struct KzcRenderer renderer,
kzUint  renderBufferHandle 
)

Binds framebuffer.

kzsException kzcRendererRenderBufferStorage ( const struct KzcRenderer renderer,
enum KzcRendererFBORenderBufferFormat  format,
kzUint  width,
kzUint  height,
kzUint  multisamples 
)

Sets storage for render buffer.

void kzcRendererBlitFramebuffer ( struct KzcRenderer renderer,
kzUint  readBufferHandle,
kzUint  drawBufferHandle,
kzUint  sourceX,
kzUint  sourceY,
kzUint  sourceWidth,
kzUint  sourceHeight,
kzUint  destX,
kzUint  destY,
kzUint  destWidth,
kzUint  destHeight 
)

Blits framebuffer to depth and color.

void kzcRendererDrawFrameBuffers ( struct KzcRenderer renderer,
kzUint  targetCount 
)

Draws framebuffer to number of targets.

kzsError kzcRendererGenerateBuffer ( const struct KzcRenderer renderer,
kzUint out_handle 
)

Generates new index or vertex buffer or uniform buffer handle.

void kzcRendererSetVertexBufferData ( struct KzcRenderer renderer,
kzUint  dataSize,
const void data 
)

Sets static vertex buffer data.

void kzcRendererSetIndexBufferData ( struct KzcRenderer renderer,
kzUint  dataSize,
const void data 
)

Sets static index buffer data.

void kzcRendererSetVertexBufferSubData ( struct KzcRenderer renderer,
kzUint  offset,
kzUint  size,
const void data 
)

Uploads vertex buffer subdata with given offset and size.

void kzcRendererSetIndexBufferSubData ( struct KzcRenderer renderer,
kzUint  offset,
kzUint  size,
const void data 
)

Uploads index buffer subdata with given offset and size.

kzsError kzcRendererDeleteBuffer ( struct KzcRenderer renderer,
kzUint  handle 
)

Deletes vertex or index buffer.

void kzcRendererEnableVertexAttributeArray ( struct KzcRenderer renderer,
kzUint  attributeHandle 
)

Enables vertex attribute array.

Parameters
rendererRenderer to operate in.
attributeHandleVertex attribute to enable.
void kzcRendererDisableVertexAttributeArray ( struct KzcRenderer renderer,
kzUint  attributeHandle 
)

Disables vertex attribute array.

Parameters
rendererRenderer to operate in.
attributeHandleVertex attribute to disable.
void kzcRendererSetVertexBufferPointer ( struct KzcRenderer renderer,
kzUint  attributeHandle,
kzUint  dimension,
enum KzcVertexAttributeDataType  attributeDataType,
kzUint  stride,
const void pointer 
)

Sets vertex buffer object pointer for currently enabled vertex attribute array.

kzsError kzcRendererSetActiveShaderHandle ( struct KzcRenderer renderer,
kzUint  activeShaderHandle 
)

Sets active shader for renderer.

kzUint kzcRendererGetActiveShaderHandle ( const struct KzcRenderer coreRenderer)

Gets active shader handle from renderer.

void kzcRendererSetActiveVertexAttributeMap ( struct KzcRenderer renderer,
struct KzcHashMap vertexAttributeMap 
)

Sets active vertex attribute map for renderer.

struct KzcHashMap* kzcRendererGetActiveShaderAttributeMap ( const struct KzcRenderer renderer)

Gets active vertex attribute map from renderer.

void kzcRendererSetDefaultFrameBuffer ( struct KzcRenderer renderer,
kzUint  frameBufferHandle 
)

Specifies default frame buffer (screen) for renderer.

void kzcRendererSetActiveFrameBuffer ( struct KzcRenderer renderer,
kzUint  frameBufferHandle 
)

Sets active frame buffer for renderer.

void kzcRendererResetActiveFrameBuffer ( struct KzcRenderer renderer)

Resets active frame buffer for renderer to default (screen).

void kzcRendererSetActiveFrameBufferCallback ( struct KzcRenderer renderer,
KzcRendererFrameBufferCallback  callbackFunction 
)

Sets callback function that is called after setActiveFrameBuffer.

kzUint kzcRendererGetActiveFrameBuffer ( const struct KzcRenderer renderer)

Gets active frame buffer handle from.

void kzcRendererReadPixels ( struct KzcRenderer renderer,
kzInt  x,
kzInt  y,
kzInt  width,
kzInt  height,
enum KzcRendererColorFormat  format,
void pixels 
)

Reads the pixels from the current frame buffer.

enum KzcRendererColorFormat kzcRendererGetNativePixelReadFormat ( struct KzcRenderer renderer)

Returns native pixel read format from renderer.

void kzcRendererBeginMaterialSetup ( struct KzcRenderer renderer)

Begins a material for renderer.

kzsError kzcRendererEndMaterialSetup ( struct KzcRenderer renderer)

Ends a material for renderer.

void kzcRendererBeginVertexArray ( struct KzcRenderer renderer,
kzUint  vertexArrayFlags 
)

Begins set of vertex arrays.

Parameters
rendererCore renderer object.
vertexArrayFlagsSet of vertex arrays to be applied. Options: KZC_VERTEX_ARRAY_POSITION, KZC_VERTEX_ARRAY_NORMAL, KZC_VERTEX_ARRAY_TEXTURE_COORDINATE and KZC_VERTEX_ARRAY_COLOR.
void kzcRendererSetVertexArrayData ( struct KzcRenderer renderer,
kzUint  vertexArrayFlag,
const void data 
)

Sets vertex array data.

kzsError kzcRendererEndVertexArray ( struct KzcRenderer renderer,
enum KzcPrimitiveType  primitiveType,
kzUint  count 
)

Ends vertex array.

Renders the specified vertex lists and finishes the usage.

const void* kzcRendererGetCurrentVertexArrayAttributeData ( const struct KzcRenderer renderer,
enum KzcRendererVertexAttribute  attribute 
)

Gets current vertex array data from renderer.

Reset when switching the shader.

kzsError kzcRendererPrintInfo ( const struct KzcRenderer renderer)

Prints info about renderer capabilities.

void kzcRendererSetLineWidth ( struct KzcRenderer renderer,
kzFloat  lineWidth 
)

Sets line rendering width for renderer.

void kzcRendererGetViewport ( const struct KzcRenderer renderer,
kzFloat out_x,
kzFloat out_y,
kzFloat out_width,
kzFloat out_height 
)

Gets view port from renderer.

If out_x, out_y, out_width or out_height are specified as KZ_NULL, they're not used.

void kzcRendererFlush ( const struct KzcRenderer renderer)

Flushes the GPU pipeline, forces all commands to be executed in finite time.

void kzcRendererSetCollectingStatisticsEnabled ( struct KzcRenderer renderer,
kzBool  collectingStatisticsEnabled 
)

Sets debug logging state for renderer.

kzUint kzcRendererGetTriangleCount ( const struct KzcRenderer renderer)

Gets triangle count from renderer.

kzUint kzcRendererGetShaderSwitchCount ( const struct KzcRenderer renderer)

Gets shader switches.

kzUint kzcRendererGetUniformSendCount ( const struct KzcRenderer renderer)

Gets uniform sending count from renderer.

kzUint kzcRendererGetTextureSwitchCount ( const struct KzcRenderer renderer)

Gets number of texture switches from renderer.

kzUint kzcRendererGetFrameBufferSwitchCount ( const struct KzcRenderer renderer)

Gets number of framebuffer switches from renderer.

kzUint kzcRendererGetBufferSwitchCount ( const struct KzcRenderer renderer)

Gets number of buffer switches (VBO + IBO) from renderer.

kzUint kzcRendererGetBatchCount ( const struct KzcRenderer renderer)

Gets batch count from renderer (number of draw calls, such as drawElements and drawArrays).

kzUint kzcRendererGetHeavyweightCallCount ( const struct KzcRenderer renderer)

Returns potential heavyweight calls such as buffer or texture updates and glFinish from renderer.

Potential due to GPU implementation may decide when heavyweight occurs (e.g. reading cannot be performed before write operation finishes).

kzsError kzcRendererSetBinaryShaderFormatIdentifier ( struct KzcRenderer renderer,
kzString  binaryShaderID,
kzUint  binaryFormatGPUConstant 
)

Sets binary shader format identifier for renderer.

This is used to detect corresponding binary shader from list of compiled binaries. KZ_NULL to none, i.e. using platform-specific string.

Parameters
binaryFormatIdentifierGPU identifier of the binary shader (GL constant for glShaderBinary function).
kzString kzcRendererGetBinaryShaderFormatIdentifier ( const struct KzcRenderer renderer)

Gets binary shader format identifier from renderer.

KZ_NULL if nothing is set.

kzUint kzcRendererGetBinaryShaderGPUFormatIdentifier ( const struct KzcRenderer renderer)

Gets the GPU identifier of the binary shader format.

void kzcRendererSetProgramBinaryExtensionEnabled ( struct KzcRenderer renderer,
kzBool  enabled 
)

Sets the usage of the GL_OES_get_program_binary extension when loading binary shaders.

kzBool kzcRendererIsProgramBinaryExtensionEnabled ( const struct KzcRenderer renderer)

Checks if the use of GL_OES_get_program_binary extension is enabled.

void kzcRendererSetShaderCachingEnabled ( struct KzcRenderer renderer,
kzBool  enabled 
)

Sets shader caching enabled / disabled.

kzBool kzcRendererIsShaderCachingEnabled ( const struct KzcRenderer renderer)

Checks if shader caching is enabled.

void kzcRendererSetShaderCacheDirectory ( struct KzcRenderer renderer,
kzString  cacheDirectory 
)

Sets directory used for shader-cache.

kzString kzcRendererGetShaderCacheDirectory ( const struct KzcRenderer renderer)

Get shader-cache directory.

KZ_NULL if not set.

void kzcRendererSetGPUCallsEnabled ( struct KzcRenderer renderer,
kzBool  enabled 
)

Sets GPU calls enabled / disabled.

kzBool kzcRendererGPUCallsIsEnabled ( const struct KzcRenderer renderer)

Checks if GPU calls are enabled.

kzsError kzcRendererPrintExtensionInfo ( const struct KzcRenderer renderer)

Prints raw list of extensions supported.

kzBool kzcRendererIsDepthStencilSupported ( struct KzcRenderer renderer)

Checks if combined depth+stencil render buffer format is supported.

kzBool kzcRendererIsCoverageBufferSupported ( struct KzcRenderer renderer)

Is coverage buffer supported or not.

kzBool kzcRendererIsHalfFloatSupported ( struct KzcRenderer renderer)

Is half float supported.

kzBool kzcRendererIsFrameBufferSupported ( struct KzcRenderer renderer)

Is frame buffer supported.

kzBool kzcRendererIsFrameBufferDepth24Supported ( struct KzcRenderer renderer)

Is frame buffer depth 24 supported.

kzBool kzcRendererIsUniformBufferSupported ( struct KzcRenderer renderer)

Returns if uniform buffer is supported.

kzBool kzcRendererIsExternalTextureSupported ( struct KzcRenderer renderer)

Returns if external texture extension is supported.

kzBool kzcRendererIsMapBufferRangeSupported ( struct KzcRenderer renderer)

Returns if map buffer range extension is supported.

kzBool kzcRendererGetUniformBufferBlockLocation ( struct KzcRenderer renderer,
kzUint  shaderHandle,
kzString  uniformBufferBlock,
kzUint out_location 
)

Gets location of the uniform buffer.

kzInt kzcRendererBindUniformBlockToBuffer ( struct KzcRenderer renderer,
kzString  uniformBufferBlock 
)

Binds uniform block to buffer.

void kzcRendererSetUniformBufferData ( struct KzcRenderer renderer,
kzUint  dataSize,
const void data 
)

Sets dynamic uniform buffer data.

void kzcRendererSetUniformBuffer ( struct KzcRenderer renderer,
kzUint  value 
)

Sets a uniform buffer for renderer.

kzUint kzcRendererGetUniformBlockUniformCount ( struct KzcRenderer renderer,
kzUint  shaderHandle,
kzUint  uniformBufferBlock 
)

Gets specific uniform block uniform count.

kzUint kzcRendererGetUniformBlockSize ( struct KzcRenderer renderer,
kzUint  shaderHandle,
kzUint  uniformBufferBlock 
)

Gets specific uniform block size.

kzsError kzcRendererGetUniformIndices ( struct KzcRenderer renderer,
kzUint  shaderHandle,
kzUint  uniformBufferBlock,
kzUint  uniformCount,
kzMutableString **  out_uniformNames,
kzInt **  out_uniformLocations,
kzInt **  out_uniformOffsets 
)

Gets uniform names, locations and offsets from given shader and uniform block.

void kzcRendererBindBufferBase ( struct KzcRenderer renderer,
kzUint  uniformBufferHandle,
kzUint  bindingPoint 
)

Binds uniform buffer base to binding point.

void kzcRendererSetUniformBufferSubData ( struct KzcRenderer renderer,
kzUint  offset,
kzUint  dataSize,
const void data 
)

Uploads sub data for uniform buffer.

kzsError kzcRendererCreateImageObject ( struct KzcRenderer renderer,
void dataPointer,
kzInt  target,
kzInt attributes,
void **  out_imageObject 
)

Creates image object, returns KZ_NULL if no hardware support.

Image object can be bound as texture input. Requires surface to be set for renderer via kzcRendererSetSurface, otherwise throws an error.

kzsError kzcRendererDeleteImageObject ( struct KzcRenderer renderer,
void imageObject 
)

Deletes image object created with kzcRendererCreateImageObject.

kzsError kzcRendererSetImageTargetTexture ( struct KzcRenderer renderer,
enum KzcRendererTextureType  textureType,
void imageObject 
)

Sets image object bound to currently bound texture (type).

void kzcRendererBeginActiveUniformBlockUniform ( struct KzcRenderer renderer,
kzByte data,
kzInt  offset,
kzUint  uniformBlockUniformBufferHandle 
)

Begins active uniform block uniform deployment.

void kzcRendererEndActiveUniformBlockUniform ( struct KzcRenderer renderer)

Ends active uniform block uniform deployment.

kzsError kzcRendererInitializeUniformBufferBlock ( struct KzcRenderer renderer,
const struct KzcMemoryManager memoryManager,
kzUint  programHandle,
kzString  blockName 
)

Initializes a new uniform block.

kzBool kzcRendererGetUniformBufferLocation ( struct KzcRenderer coreRenderer,
kzUint  programHandle,
kzString  uniformName,
kzInt out_offset,
kzByte **  out_data,
kzUint out_uniformBufferHandle 
)

Gets uniform buffer location from renderer.

kzBool kzcRendererIsCompressionFormatSupported ( struct KzcRenderer renderer,
enum KzcRendererTextureCompression  compression 
)

Returns if specific texture compression format is supported.

kzFloat kzcRendererGetMaximumAnisotropy ( struct KzcRenderer renderer)

Gets maximum anisotropy.

kzUint kzcRendererGetMaximumTextureSize ( struct KzcRenderer renderer)

Gets maximum texture side size.

kzUint kzcRendererGetMaximumCubemapSize ( struct KzcRenderer renderer)

Gets maximum cubemap side size.

kzUint kzcRendererGetStencilBufferBits ( struct KzcRenderer renderer)

Returns number of stencil buffer bits in main GL context.

kzInt kzcRendererGetColorReadFormat ( struct KzcRenderer renderer)

Returns GL constant for the color read format used in reading back data form framebuffer (kzcRendererReadPixels).

kzInt kzcRendererGetColorReadType ( struct KzcRenderer renderer)

Returns GL constant for the color read type used in reading back data form framebuffer (kzcRendererReadPixels).

kzsError kzcRendererInvalidateAllocations ( struct KzcRenderer renderer)

Invalidates all handles from renderer without affecting GL state.

struct KzcGPUBufferManager* kzcRendererGetGPUBufferManager ( const struct KzcRenderer renderer)

Gets GPU buffer manager from renderer.

Variable Documentation

const kzString KzcRendererFixedUniformNames[KZC_RENDERER_FIXED_UNIFORM_COUNT]

Specifies uniform names of the fixed uniforms.

const kzString KZC_RENDERER_ATTRIBUTE_POSITION

Attribute string for vertex positions.

const kzString KZC_RENDERER_ATTRIBUTE_NORMAL

Attribute string for vertex normals.

const kzString KZC_RENDERER_ATTRIBUTE_TANGENT

Attribute string for vertex tangents.

const kzString KZC_RENDERER_ATTRIBUTE_WEIGHT

Attribute string for vertex weight (skinning).

const kzString KZC_RENDERER_ATTRIBUTE_MATRIX_PALETTE

Attribute string for matrix palette (skinning).

const kzString KZC_RENDERER_ATTRIBUTE_TEXTURE_COORDINATE[KZC_RENDERER_MAX_TEXTURE_UNITS]

List of attribute strings for texture coordinates.

const kzString KZC_RENDERER_ATTRIBUTE_COLOR[KZC_RENDERER_MAX_VERTEX_COLORS]

List of attribute strings for vertex colors.